From 6287b670aada181cd398782c9a681a96f3874a56 Mon Sep 17 00:00:00 2001 From: Luo <82520819+Jerry-306@users.noreply.github.com> Date: Tue, 12 Oct 2021 14:11:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=201365=20=E6=9C=89=E5=A4=9A?= =?UTF-8?q?=E5=B0=91=E4=B8=AA=E5=B0=8F=E4=BA=8E=E5=BD=93=E5=89=8D=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E7=9A=84=E6=95=B0=E5=AD=97=20JavaScript=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8D=E4=BD=BF=E7=94=A8=E5=93=88=E5=B8=8C=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E8=A7=A3=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...65.有多少小于当前数字的数字.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/problems/1365.有多少小于当前数字的数字.md b/problems/1365.有多少小于当前数字的数字.md index 69654930..9f282209 100644 --- a/problems/1365.有多少小于当前数字的数字.md +++ b/problems/1365.有多少小于当前数字的数字.md @@ -156,6 +156,7 @@ Go: JavaScript: ```javascript +// 方法一:使用哈希表记录位置 var smallerNumbersThanCurrent = function(nums) { const map = new Map();// 记录数字 nums[i] 有多少个比它小的数字 const res = nums.slice(0);//深拷贝nums @@ -171,9 +172,27 @@ var smallerNumbersThanCurrent = function(nums) { } return res; }; + +// 方法二:不使用哈希表,只使用一个额外数组 +/** + * @param {number[]} nums + * @return {number[]} + */ +var smallerNumbersThanCurrent = function(nums) { + let array = [...nums]; // 深拷贝 + // 升序排列,此时数组元素下标即是比他小的元素的个数 + array = array.sort((a, b) => a-b); + let res = []; + nums.forEach( x => { + // 即使元素重复也不怕,indexOf 只返回找到的第一个元素的下标 + res.push(array.indexOf(x)); + }) + return res; +}; ``` + ----------------------- * 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw) * B站视频:[代码随想录](https://space.bilibili.com/525438321)