跳到主要内容

1365.有多少小于当前数字的数字

链接:1365.有多少小于当前数字的数字
难度:Easy
标签:数组、哈希表、计数、排序
简介:给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。

题解 1 - typescript

  • 编辑时间:2020-10-26
  • 执行用时:120ms
  • 内存消耗:40.6MB
  • 编程语言:typescript
  • 解法介绍:对于每一个数进行重复统计。
function smallerNumbersThanCurrent(nums: number[]): number[] {
const ans: number[] = [];
for (let i = 0, l = nums.length; i < l; i++) {
ans[i] = count(i);
}
return ans;
function count(i: number) {
const num = nums[i];
let c = 0;
nums.forEach(v => {
if (v < num) cpp;
});
return c;
}
}

题解 2 - typescript

  • 编辑时间:2020-10-26
  • 执行用时:100ms
  • 内存消耗:41MB
  • 编程语言:typescript
  • 解法介绍:对于每个出现的数进行计数后累加。
function smallerNumbersThanCurrent(nums: number[]): number[] {
const arr = new Array(101).fill(0);
const len = nums.length;
for (let i = 0; i < len; i++) arr[nums[i]] += 1;
for (let i = 1; i < 100; i++) arr[i] += arr[i - 1];
const ans: number[] = [];
for (let i = 0; i < len; i++) ans.push(nums[i] ? arr[nums[i] - 1] : 0);
return ans;
}