leetcode287. 寻找重复数(二分法)
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。
示例 1:
输入: [1,3,4,2,2]
输出: 2
代码
class Solution {public int findDuplicate(int[] nums) {int n=nums.length,l=1,r=n-1;while (l<r){int mid = (l + r+1) >>> 1;int count=0;for(int num:nums)//统计小于mid数字出现的次数{if(num<mid)count++;}if(count>=mid)//如果小于mid数字出现的次数大于mid,则小于mid的数字出现重复r=mid-1;else l=mid;}return l;}
}
解题思路
和环形链表一样,快慢指针,快的每次两跳,慢的一跳,相遇的时候,慢回起点,快慢都变为每一次一跳,入口就是重复元素
代码
class Solution {public int findDuplicate(int[] nums) {int s=0,f=0;do {s=nums[s];f=nums[nums[f]];}while (s!=f);s=0;do {s=nums[s];f=nums[f];}while (s!=f);return s;}
}
leetcode287. 寻找重复数(二分法)相关推荐
- LeetCode-287 寻找重复数 二分法
LeetCode-287 寻找重复数 二分法 287. 寻找重复数 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数. ...
- Leetcode--287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入: [1,3 ...
- Leetcode--287. 寻找重复数(Java)
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入: [1,3 ...
- 快慢指针(LeetCode寻找重复数),弗洛伊德的乌龟和兔子
写此篇博客在于总结,记忆之用,欢迎评论补充. 弗洛伊德的乌龟和兔子,即快慢指针. 对于LeetCode287题,寻找重复数,题目如下: 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 ...
- 【LeetCode】【HOT】287. 寻找重复数(抽象环形链表)
[LeetCode][HOT]287. 寻找重复数 文章目录 [LeetCode][HOT]287. 寻找重复数 package hot;public class Solution287 {publi ...
- 287. 寻找重复数
寻找重复数 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. class So ...
- 【手绘漫画】图解LeetCode之寻找重复数(LeetCode287题),抽屉原理
文章目录 图解LeetCode刷题计划 1.写在前面 2.题目 3.正文 4.代码 5.讨论 图解LeetCode刷题计划 1.写在前面 手绘漫画系列正式上线!!!"图解LeetCode刷题 ...
- 寻找重复数—leetcode287
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入: [1,3 ...
- [Leedcode][JAVA][第287题][寻找重复数][HashSet][二分查找][快慢指针]
[问题描述][中等] 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数.输入: ...
最新文章
- java action dao_java中Action层、Service层和Dao层的功能区分
- 轻松得到C# ADO.NET的各种数据库连接字符串
- mobx使用数组提示越界_向Mobx可观察数组添加操作
- Python 技术篇-读取文件,将内容保存dict字典中。去掉字符串中的指定字符方法,dict字典的遍历
- 小程序页面跳转的几个方法和区别
- 数学和计算机的应用视频教学反思,数学多媒体教学反思.doc
- Note 7会让三星有什么样的命运呢?
- OA报账规范(出差专用)
- 数据库系统工程师考点笔记
- windows常见电脑蓝屏的解决办法
- 总弹出Visual Studio实时调试器的问题
- 华为数字化转型之道第二讲
- 帕拉丁(山东)俱乐部大型西藏自驾游,天籁之旅,与心灵自由相约
- 铁乐学Python_day05-字典dict
- Cadence Allegro使用过程中出现的常见问题-原理图和PCB
- 毕业设计-基于微信小程序的工单智能管理系统
- 电脑BIOS密码的设置与修改方法
- VBA遍历文件夹下的所有文件
- RepLKNet代码解读(31大小的卷积核)
- 如何选择PMP、IPMP、CPMP?