方法一 暴力循环
对于数组里的没一个元素都遍历一遍看有多少元素小于当前元素
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
};
消耗时间和内存情况: