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

【LeetCode题解】LeetCode 287. 寻找重复数

【题目链接】
287. 寻找重复数
【题目描述】
在这里插入图片描述
【题解】
定义cnt[i]cnt[i]cnt[i]表示numsnumsnums数组中小于等于iii的数有多少个,假设我们重复的数是targettargettarget,那么 [1,target−1][1,target−1][1,target1]里的所有数满足cnt[i]≤icnt[i]≤icnt[i]i[target,n][target,n][target,n]里的所有数满足cnt[i]>icnt[i]>icnt[i]>i,具有单调性。因此可以使用二分算法。
每次计算mid=(l+r)>>1mid = (l + r) >> 1mid=(l+r)>>1。计算cnt[mid]cnt[mid]cnt[mid],即数组中小于等于midmidmid的数字的个数。如果cnt[mid]>midcnt[mid] > midcnt[mid]>mid,说明重复的数字在区间[mid,n][mid, n][mid,n]内,调整l=mid+1l = mid + 1l=mid+1;否则,重复数字在[1,mid−1][1, mid-1][1,mid1]内,调整r=mid−1r = mid - 1r=mid1
继续这个过程直到找到重复数字。

【AC代码】

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) >> 1;int cnt = 0;for (int i = 0; i < n; ++i) {if(nums[i] <= mid)cnt++;}if (cnt <= mid) {l = mid + 1;} else {r = mid - 1;ans = mid;}}return ans;}
};

【思考&收获】
二分的题,当你找到要对什么进行二分的时候,就已经成功一半了。

http://www.dtcms.com/a/343754.html

相关文章:

  • SQL184 近三个月未完成试卷数为0的用户完成情况
  • XP系统安装Android Studio 3.5.3并建立Java或Native C++工程,然后在安卓手机上运行
  • 【渲染流水线】[逐片元阶段]-[混合Blend]以UnityURP为例
  • 螺旋槽曲面方程的数学建模与偏导数求解
  • Unreal Engine UProjectileMovementComponent
  • 如何生成网关路由表
  • clickhouse实战(二)
  • 关于爬虫的基本步骤说明【爬虫七步骤】
  • AI适老服务暖人心:AI适老机顶盒破数字鸿沟、毫米波雷达护独居安全,银发生活新保障
  • 大模型压缩三剑客:量化、剪枝与知识蒸馏全解析
  • Logstash——安全与权限管理
  • Swift 项目结构详解:构建可维护的大型应用
  • 【Feed-forward optimization】 in Visual Geometry Grounded and 3DGS
  • Matrix-Zero:昆仑万维发布的AI世界模型,支持单张图生成3D世界
  • (纯新手教学)计算机视觉(opencv)实战七——边缘检测Sobel 算子(cv2.Sobel())详解
  • ⭐CVPR2025 无约束 3D 视线估计新框架[特殊字符]
  • 【图像算法 - 21】慧眼识虫:基于深度学习与OpenCV的农田害虫智能识别系统
  • Python opencv识别图片中重叠圆的圆心位置
  • 焊接工艺仿真软件SYSWELD、Simufact.Welding和FLOW-3D WELD的区别
  • 【0基础3ds Max】捕捉工具详解
  • 城市生命线地下管网三维建模软件MagicPipe3D更新历史
  • ZBrush和3D-Coat如何实现快速桥接?
  • `git mv` 重命名 Git 仓库中的文件夹
  • OFSP路由与传输层协议
  • LLM实践系列:利用LLM重构数据科学流程
  • 亚矩阵云手机:亚马逊第三方店铺多账号安全合规运营的核心技术支撑
  • 代码随想录Day59:图论(最短路算法dijkstra堆优化版精讲、Bellman_ford 算法精讲)
  • 【生成树+环】题解:P3907 环的异或_图论_环_异或_搜索_算法竞赛_C++
  • 【typenum】 22 类型级别二进制对数运算(Logarithm2)
  • Apache Ozone 介绍与部署使用(最新版2.0.0)