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

LeetCode hot100-100

287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。
对数字范围 [1, n] 进行二分,而不是对数组本身排序。
统计数组中小于等于中间值 mid 的数字个数:
如果个数超过 mid,说明重复数字在 [1, mid] 范围内。
否则,重复数字在 [mid + 1, n] 范围内。

这题要领悟这个思想,所以起始是从1到n-1找的。因为有n个数,不重复的数就是1到n-1,重复了一个数之后才有的n个数。后面代码中的各种等号,right=mid,这跟传统二分还是不太一样,就是要理解上面的解法才知道为什么这样写。

class Solution {public int findDuplicate(int[] nums) {int n = nums.length;int left = 1, right = n - 1;while (left < right) {int count = 0;int mid = (left + right) / 2;for (int num : nums) {if (num <= mid) {count++;}}if (count > mid) {right = mid;} else {left = mid + 1;}}return left;}
}
http://www.lryc.cn/news/519371.html

相关文章:

  • Vue.js:现代前端开发的灵活框架
  • CUDNN详解
  • 下载并安装MySQL
  • Linux ffmpeg 基础用法
  • 【C++入门】详解(中)
  • 深度学习的加速器:Horovod,让分布式训练更简单高效!
  • 计算机的错误计算(二百零八)
  • 海康机器人IPO,又近了一步
  • 【环境搭建】Metersphere v2.x 容器部署教程踩坑总结
  • 系统看门狗配置--以ubuntu为例
  • 阅读笔记——《A survey of protocol fuzzing》
  • C# 语法中级
  • STORM:从多时间点2D图像中快速重建动态3D场景的技术突破
  • excel前缀和(递增求和)
  • 【AI日记】25.01.11 Weights Biases | AI 笔记 notion
  • P8772 [蓝桥杯 2022 省 A] 求和
  • 【Oracle篇】深入了解执行计划中的访问路径(含表级别、B树索引、位图索引、簇表四大类访问路径)
  • WSDL的基本概念
  • RabbitMQ解决消息积压的方法
  • Android 网络层相关介绍
  • 2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)
  • 小米路由器IPv6 功能使用指南
  • k8s dashboard离线部署步骤
  • Wireshark抓包教程(2024最新版个人笔记)
  • 稀疏矩阵:BM25;稠密矩阵:RoBERTa - wwm - ext顺序
  • C# 结构体(Struct)
  • Homestyler 和 Tripo AI 如何利用人工智能驱动的 3D 建模改变定制室内设计
  • Python的pandas库基础知识(超详细教学)
  • 【数据库】一、数据库系统概述
  • 大数据智能选课系统