题目简介:
给你一个数组nums,对于其中每个元素nums[i],请你统计数组中比它小的所有数字的数目。
换而言之,对于每个nums[i]你必须计算出有效的j的数量,其中j满足j!=i且nums[j]<nums[i]。
以数组形式返回答案。
示例1示:
示例2示:
示例3示:
提示示:
解题思路:
第一步先将所给数组按从小到大排序存入临时数组中。
6在这步中需要注意的是:不能通过将原始数组直接赋值给临时数组,然后对临时调用sort方法。
7原因:通过直接赋值后,两个变量所指向的内存地址相同,当对临时数组排序之后,原始数组中的数组中的数据同时被排序。示。
为了不影响原始数组中的数据,采用切片的方式赋值。经过切片后赋值的临时数组与原始数组不在指向同一个内存地址。示。
第二部查询原数组中的数在排序后数组中的索引值即为所求结果。
10此外当原始数组中若存在相同的数时,可以利用index方法巧妙解决。
11由于通过index方法返回的索引下标为第一此出现的位置,故不用考虑数组中有重复的数。示。
2原始代码示。
3为了优化程序的运行时间,故采用列表推导。优化后的代码示。
4优化后的代码不仅更加简介,而且还提高了程序的运行速度。
15提交记录比较,示:
https://www.izhinan.cn/article-38796-1.html以上内容就是关于【力扣算法习题——有多少小于当前数字的数字 】的指南经验分享;您也可以通过下方的评论互动,发表您的意见和观点,让更多人通过生活指南经验分享因之受益,让生活变得更简单。