当前位置: 首页 > news >正文

LeetCode 1365. 有多少小于当前数字的数字 java题解

https://leetcode.cn/problems/how-many-numbers-are-smaller-than-the-current-number/description/
对于排序后的数组,它的下标就代表了前面有多少<=它的数。
可以用一个哈希表来记录数字,和小于它的数字数量。
而题目需要的是小于它的数的数量,原数组中的数字有重复情况。也就是说,前面如果有等于它的数,是不算入结果的。解决方法是倒序遍历排序数组,从后往前加入哈希表,这样同样的数,前面的结果更小,哈希表会用前面的结果覆盖后面的结果。

class Solution {public int[] smallerNumbersThanCurrent(int[] nums) {int len=nums.length;int[] sort_nums=new int[len];for(int i=0;i<len;i++) sort_nums[i]=nums[i];Arrays.sort(sort_nums);HashMap<Integer,Integer> map=new HashMap<>();//num,原indexfor(int i=len-1;i>=0;i--){//倒序遍历排序后数组,数组下标就代表他前面有几个map.put(sort_nums[i],i);}int[] res=new int[len];for(int i=0;i<len;i++){res[i]=map.get(nums[i]);}return res;}
}

相关文章:

  • @EnableAsync+@Async源码学习笔记之一
  • C语言格式化输入输出总结 (printf和scanf)
  • ubuntu18.04安装QT问题汇总
  • 【STM32单片机】#10 USART串口通信
  • Kubernetes 多主多从集群部署完整文档
  • 解码 Web Service:从技术原理到应用场景的深度剖析
  • (2)Vue事件绑定的使用
  • 测试第四课---------性能测试
  • JAVA IO、BIO、NIO、AIO及零拷贝
  • 数据从辅存调入主存,页表中一定存在
  • LinearLayout 线性布局
  • 6.7 ChatGPT自动生成定时任务脚本:Python与Cron双方案实战指南
  • dac直通线还是aoc直通线? sfp使用
  • Shell脚本-什么时候需要定义变量
  • 【2025】Datawhale AI春训营-蛋白质预测(AI+生命科学)-Task2笔记
  • 实战交易策略 篇十六:猎豹阿杜打板交易策略
  • PHP异常处理__Exception类
  • TV主板的拆解学习
  • 实战交易策略 篇十五:东莞小文超级短线交易策略
  • @EnableAsync+@Async源码学习笔记之三
  • 江苏银行去年净赚超318亿增超10%,不良贷款率持平
  • 一场小型越野赛为何吸引众多越野大神打卡?
  • 特朗普政府将对中国建造船只加征“港口费”,外交部:损人害己
  • 生于1984年,郭宝任湖北黄石市副市长
  • 9部门发文促进家政服务消费扩容升级
  • 李强主持国务院第十三次专题学习