
【剑指Offer】数组中重复的数字
发布日期:2021-05-10 05:48:23
浏览次数:26
分类:原创文章
本文共 869 字,大约阅读时间需要 2 分钟。
数组中重复的数字
Leetcode地址:
描述:
解法:
思路:
因为数字范围在0~n-1,所以可以用数组对应下标和数字对应起来。我这里愿意称它为“桶”。
所以我想的是,就是造个桶来累计每个数字出现的次数;
我的代码:
public int findRepeatNumber(int[] nums) { if (nums.length < 2 || nums.length > 100000) { return -1; } int[] res = new int[nums.length]; for (int num : nums) { res[num] += 1; if (res[num] > 1) { return num; } } return -1; }
更巧妙的解法:
和上面比,空间复杂度更低。就是把数组本身当做桶,如果数字的位置不对,放到对应的桶里,如果桶里本身有东西就发现重复。
//置换法 public int findRepeatNumber(int[] nums) { if (nums.length < 2 || nums.length > 100000) { return -1; } int temp; for (int i = 0; i < nums.length; i++) { if (nums[i] == i) { continue; } if (nums[i] == nums[nums[i]]) { return nums[i]; } temp = nums[i]; nums[i] = nums[temp]; nums[temp] = temp; } return -1; }
发表评论
最新留言
不错!
[***.144.177.141]2025年04月25日 13时12分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python IO编程
2019-03-06
CSS入门总结
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06
django-表单之模型表单渲染(六)
2019-03-06
c++之程序流程控制
2019-03-06
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2019-03-06
有道云笔记 同步到我的博客园
2019-03-06
李笑来必读书籍整理
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2019-03-06
andriod 开发错误记录
2019-03-07
C语言编译错误列表
2019-03-07
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
Android DEX加固方案与原理
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07