思路分析
数据范围比较小,可以用桶的思想,统计出各个数出现的频率。然后用迭代的方法,用dict[i]表示i出现的次数,sum[i]表示比i小的数的个数,则
代码实现
class Solution {public int[] smallerNumbersThanCurrent(int[] nums) {// 数据范围0-100// dict[i]表示i出现的次数int[] dict = new int[101];// sum[i]表示比i小的数的个数int[] sum = new int[101];int[] ans = new int[nums.length];int i;for (i = 0; i < nums.length; ++i) {dict[nums[i]]++;}for (i = 1; i <= 100; ++i) {sum[i] = sum[i - 1] + dict[i - 1];}for (i = 0; i < nums.length; ++i) {ans[i] = sum[nums[i]];}return ans;}}
