方法一 暴力循环
对于数组里的没一个元素都遍历一遍看有多少元素小于当前元素
var smallerNumbersThanCurrent = function(nums) {let n = nums.length;let ret = [];for (let i = 0; i < n; ++i) {let count= 0;for (let j = 0; j < n; ++j) {if (nums[j] < nums[i]) {count++;}}ret[i] = count;}return ret;
};
消耗时间和内存情况:
方法二 排序
将数组排序,并记录每一个数在原数组中的位置。对于排序后的数组中的每一个数,我们找出其左侧第一个小于它的数,这样就能够知道数组中小于该数的数量。
var smallerNumbersThanCurrent = function(nums) {var arr = Array.from(nums)arr = arr.sort((a,b)=>a-b)let index = 0,res = []for(let i = 0; i < nums.length; i++){index = arr.indexOf(nums[i])if(index>0){res[i]=index}else{res[i]=0}}return res
};
消耗时间和内存情况: