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

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;}
}
http://www.xdnf.cn/news/414.html

相关文章:

  • phpy通用扩展:让PHP和Python手拉手
  • 基于SFC的windows修复程序,修复绝大部分系统损坏
  • 如何0基础学stm32?
  • 【操作系统原理01】操作系统引论
  • vue生命周期
  • 安徽合肥京东自营代运营如何突围?
  • 【网络技术_域名解析DNS】三、DNS 中间件实践应用与优化策略
  • Docker Swarm 容器与普通 Docker 容器的网卡差异
  • RTMP握手流程
  • 18、TimeDiff论文笔记
  • 用usb网卡 虚拟机无法开到全双工的解决办法
  • CUDA编程中影响正确性的小细节总结
  • mysql的函数(第一期)
  • [每周一更]-(第140期):sync.Pool 使用详解:性能优化的利器
  • 【漫话机器学习系列】211.驻点(Stationary Points)
  • opencv--图像处理
  • [密码学基础]GMT 0029-2014签名验签服务器技术规范深度解析
  • 性能比拼: Elixir vs Go(第二轮)
  • [密码学基础]密码学发展简史:从古典艺术到量子安全的演进
  • 免费多平台运行器,手机畅玩经典主机大作
  • 【数据结构】励志大厂版·初阶(复习+刷题)单链表
  • 简单线段树的讲解(一点点的心得体会)
  • 开发基于python的商品推荐系统,前端框架和后端框架的选择比较
  • 碰一碰发视频系统源码搭建全解析:定制化开发
  • php多种方法实现xss过滤
  • linux oracle 19c 静默安装
  • 5G 毫米波滤波器的最优选择是什么?
  • Java核心技术卷第三章
  • [特殊字符] Kotlin与C的类型别名终极对决:typealias vs typedef,如何让代码脱胎换骨?
  • linux之文件系统