力扣287. 寻找重复数

Problem: 287. 寻找重复数

题目描述

在这里插入图片描述在这里插入图片描述

思路

利用二分查找搜索1 ~ n中重复的元素,我们每次取出当前二分查找的区间的中间元素mid并在元始的数组nums中统计小于mid的元素的个数count:
count > mid则说明重复的元素在区间[left, mid]中缩小区间查找区间**[left, mid]**
count <= mid则说明重复的元素在区间[mid + 1, right]中缩小区间查找区间**[mid + 1, right]**

解题方法

1.获取数组nums的大小len,定义左右指针left = 1,right = len - 1;
2.当left < right时,每次计算当前区间的中间值mid = left + (right - left),并统计nums中小于等于mid的元素个数count;
3.若count > mid则使得right = mid
4.若count <= mid则使得left = mid + 1

复杂度

时间复杂度:

O ( n l o g n ) O(nlogn) O(nlogn)

空间复杂度:

O ( 1 ) O(1) O(1)

Code

class Solution {
public:
	/// <summary>
	/// Find the repeated number
	/// </summary>
	/// 
	/// <param name="nums"> Given array </param>
	/// <returns> int </returns>
	int findDuplicate(vector<int>& nums) {
		int len = nums.size();
		int left = 1;
		int right = len - 1;
		while (left < right) {
			int mid = left + (right - left) / 2;
			int count = 0;
			for (int num : nums) {
				if (num <= mid) {
					count++;
				}
			}
			if (count > mid) {
				right = mid;
			} else {
				left = mid + 1;
			}
		}
		return left;
	}
};

相关推荐

  1. Leetcode 287. 寻找重复

    2024-04-25 06:24:04       25 阅读
  2. leetcode——287 寻找重复

    2024-04-25 06:24:04       25 阅读
  3. leetcode热题HOT 287. 寻找重复

    2024-04-25 06:24:04       33 阅读
  4. -217. 存在重复元素

    2024-04-25 06:24:04       26 阅读
  5. 217. 存在重复元素

    2024-04-25 06:24:04       16 阅读
  6. LeetCode 287 寻找重复数字

    2024-04-25 06:24:04       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 06:24:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 06:24:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 06:24:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 06:24:04       20 阅读

热门阅读

  1. vue项目中定位组件来源的查找思路

    2024-04-25 06:24:04       16 阅读
  2. 1883. 准时抵达会议现场的最小跳过休息次数

    2024-04-25 06:24:04       16 阅读
  3. MAC 安装miniconda

    2024-04-25 06:24:04       12 阅读
  4. Axios

    2024-04-25 06:24:04       11 阅读
  5. 【OceanBase系列】—— 常用 SQL

    2024-04-25 06:24:04       13 阅读
  6. FPGA中乘除法运算实现途径

    2024-04-25 06:24:04       14 阅读
  7. Feign 和 OpenFeign 的区别???

    2024-04-25 06:24:04       15 阅读
  8. 根据前,中(后,中)构建二叉树

    2024-04-25 06:24:04       10 阅读
  9. MySQL_day1

    2024-04-25 06:24:04       12 阅读