首页 > 其他分享 >寻找数组中重复的数字

寻找数组中重复的数字

时间:2023-07-28 17:11:44浏览次数:95  
标签:cnt 数字 nums 重复 int 数组

寻找数组中重复的数字

​ 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数

  • 1 <= n <= \(10^5\)
  • nums.length == n + 1
  • 1 <= nums[i] <= n
  • nums只有一个整数 出现 两次或多次 ,其余整数均只出现 一次

二分

​ 题目给出了所有的数字都在[1, n]的范围内, 那我可以先去开一个数组统计一下情况. 假设令cnt[i]表示数组内小于等于i的元素的个数. 假设输入样例为1, 3, 4, 2, 2. 那么cnt数组就为:

i 1 2 3 4
cnt[i] 1 3 4 5

​ 如果一个数字x出现多次, 其他数字出现一次, 那么在x的左边(i < x), cnt[i]一定都小于i, 而当i >= x时, cnt[i]一定都大于i. cnt数组因此是单调递增的, 可以对其进行二分查找, 找到第一个cnt[i] > i 的i.

int findDuplicate(vector<int>& nums) {
    int n = nums.size();
    int l = 0, r = n - 1, res = -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;
            res = mid;
        }
    }
    return res;
}

标签:cnt,数字,nums,重复,int,数组
From: https://www.cnblogs.com/wangyiming-rahim/p/17588395.html

相关文章

  • 序列检测1011?重复检测&非重复检测
    请设计一个检测序列为1011的检测电路?序列检测一般采用状态机实现。状态机一般采用三段式状态机实现。重复检测即在1011011011中检测三次非重复检测  即在1011011011中检测两次序列检测示意:非重复检测状态转移图 重复检测状态转移图 设计代码和激励代码如下......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台大并发下SIP消息出现重复SN号的问题解
    随着国家倡导平安城市、智慧城市的建设,安防视频监控作为智慧城市安防建设的重要环节,也越来越受到重视。LntonGBS是基于公安部推出的安防主流协议(国标GB28181协议)的视频接入、处理及分发平台,具有视频直播监控、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能。我......
  • 中国信通院“铸基计划”:和鲸ModelWhale入选《高质量数字化转型产品及服务全景图》
    7月27日,由中国信通院主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中会议在北京召开。本次大会重磅发布了《高质量数字化转型产品及服务全景图(2023)》,和鲸科技旗下数据科学协同平台ModelWhale成功入选,成为人工智能领域的标杆平台产品。《高质量数字化转型产品及服务......
  • 中国大连高级经理学院携手CIO时代, 共推央国企数字化人才培养
    为积极贯彻“数字中国”战略、落实《关于加快推进国有企业数字化转型工作的通知》要求,全面落实国务院国资委推动国有企业数字化转型的部署要求,聚焦加快发展数字经济,促进数字经济与实体经济深度融合,助力国有企业数字化转型行动计划的深化,中国大连高级经理学院联合CIO时代共同举办“......
  • 数字化转型究竟难在哪里?让我们来听听他们怎么说
    近年来,随着国际环境日趋复杂,我国经济发展的复杂性、严峻性、不确定性持续上升,所面临的内外部挑战不断增加,经济发展正由高速增长向中高速增长转换。与此同时,以数字技术为主导的新一轮科技革命在全球范围内加速演进,全面推动着社会生活、生产方式向数字化转型,数实融合成为各行各业的必......
  • 树状数组的扩展应用
    「观前提醒」「文章仅供学习和参考,如有问题请在评论区提出」目录O(N)建树方法一方法二维护区间和单点修改,区间查询区间修改,单点查询区间修改,区间查询维护二维子矩阵和(二维树状数组)单点修改,子矩阵查询子矩阵修改,单点查询子矩阵修改,子矩阵查询求逆序对个数求数列中小于x的元......
  • 医学案例|两因素重复测量方差
    一、案例介绍将手术要求基本相同的15名患者随机分3组,在手术过程中分别采用A、B、C三种麻醉诱导方法,在T0(诱导前)、T1、T2、T3、T4五个时刻测量患者的收缩压,试着进行方差分析。二、问题分析可以从案例得到,数据既包含组别、测量时间以及组别和测量时间的交叉,所以考虑使用重复测量方......
  • TDengine Cloud 加入 AWS 合作伙伴网络,助力出海企业数字化转型
    近日,全托管的时序数据云平台TDengineCloud正式入驻AWSMarketplace(海外区),用户可通过AWSMarketplace轻松实现TDengineCloud的订阅与部署,以最低的成本搭建最高效的数据处理架构。此外,早在2022年12月,时序数据库(TimeSeriesDatabase)TDengine就已经成功上线了AWSMa......
  • 代码随想录算法训练营第四十天| 300.最长递增子序列 674. 最长连续递增序列 718.
    300.最长递增子序列要求:可以删减任意个节点,最后保存最大的递增长度难点:410489如何保证全局的视角,看到很前面的节点是否大于当前的节点,而不是仅仅记录状态思路:dp[n],当子序列的末尾为N时,它的最大子序列长度也就意味着,N在它的子序列中是最大的,遍历这个N之前的所有序......
  • 数字化时代的农业新篇章
    智慧农业发展前景灿烂多彩,正为农业带来新的转型升级。随着科技的不断发展,数字化、自动化和智能化技术逐渐渗透进农业领域,为农民提供了更多高效便捷的农业管理方式。智慧农业通过物联网、大数据、人工智能等先进技术,实现对农田土壤、气候、水资源等关键信息的实时监测和分析,让农民......