class Solution {
public:
int findDuplicate(vector<int>& nums) {
int n = nums.size();
int l = 1, r = n-1, ans = -1;
while(l <= r) {
int mid = (l+r)/2;
int cnt = 0;
for(int i=0; i<n; i++) {
cnt += nums[i] <= mid;
}
if(cnt <= mid)
l = mid + 1;
else {
r = mid - 1;
ans = mid;
}
}
return ans;
}
};
leetcode 寻找重复数
原创
©著作权归作者所有:来自51CTO博客作者松月dd的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:找到字符串中所有字母异位词
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【LeetCode】39. 组合总和
【LeetCode】39. 组合总和
leetcode 数据结构与算法 C++ -
【LeetCode】287.寻找重复数
"""No. 287 寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1
指针 leetcode 数据结构 算法 数组 -
LeetCode287_寻找重复数
1. 题目给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可
leetcode 算法 数据结构 二分法 数组 -
LeetCode 287.寻找重复数(中等)
查找重复元素
数组 解决方案 遍历数组 -
寻找重复数
寻找重复数题目:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和
leetcode 算法 数据结构 数组 链表 -
Java实现 LeetCode 287 寻找重复数
287. 寻找重复数给定一个包含 n + 1...
数组 取指 时间复杂度 快慢指针 链表