我正在研究一个 leetcode 问题,我想不出一种方法来将数组中的其余元素相互比较。我计算出最大和最小的数字,但与其他数字进行比较是我遇到的麻烦。您将在下面找到问题和我的工作:
有多少数字小于当前数字?
给定数组 nums,对于每个 nums[i],找出数组中有多少个数字小于它。也就是说,对于每个 nums[i],您必须计算有效 j 的数量,使得 j != i 和 nums[j] < nums[i]。
返回数组中的答案。
示例 1:
Input: nums = [8,1,2,2,3]
Output: [4,0,1,1,3]
Explanation:
For nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and 3).
For nums[1]=1 does not exist any smaller number than it.
For nums[2]=2 there exist one smaller number than it (1).
For nums[3]=2 there exist one smaller number than it (1).
For nums[4]=3 there exist three smaller numbers than it (1, 2 and 2).
我的工作:
var smallerNumbersThanCurrent = (nums) => {
const output = []
const max = nums.reduce(function(a, b) {
return Math.max(a, b);
});
const min = nums.reduce(function(a, b) {
return Math.min(a, b);
});
for(let i = 0; i < nums.length; i++){
if(nums[i] === max){
output.push(nums.length - 1)
} else if (nums[i] === min){
output.push(0)
}
else if (nums[i] < max && nums[i] > min){
//how do i compare with rest of the elements in the array?
}
}
}
一只甜甜圈
米琪卡哇伊
不负相思意
皈依舞
红颜莎娜
相关分类