剑指 Offer 03. 数组中重复的数字(原地算法)「建议收藏」

剑指 Offer 03. 数组中重复的数字(原地算法)「建议收藏」找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000题解原地算法class Solution {public: static const int N = 1e5 + 10; int vis[N]

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1:

输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3

限制:

2 <= n <= 100000
题解
原地算法

class Solution { 
   
public:
    static const int N = 1e5 + 10;
    int vis[N];
    int findRepeatNumber(vector<int>& nums) { 
   
        int i = 0;
        while(i < nums.size()){ 
   
            if(i == nums[i])i ++;
            else { 
   
                if(nums[nums[i]] == nums[i])return nums[i];
                else{ 
   
                    swap(nums[i],nums[nums[i]]);
                }
            }
        }
        return 0;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168647.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++读写文件的几种方法_include有什么用

    c++读写文件的几种方法_include有什么用在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:#includeofstream//文件写操作内存写入存储设备ifstream//文件读操作,存储设备读区到内存中fstrea

    2026年1月27日
    6
  • 分苹果_分苹果编程

    分苹果_分苹果编程分苹果时间限制:1000 ms | 内存限制:65535 KB难度:2描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(注意:假如有3个盘子7个苹果,5,1,1和1,5,1是同一种分法。)输入t,表示测试组数(t输出输出不同的分法样例输入173样例输出8

    2022年10月12日
    3
  • 【Windows】Windows10 更新报错的解决方案[通俗易懂]

    【Windows】Windows10 更新报错的解决方案[通俗易懂]本文记录安装Windows10Pro后遇到的无法获得更新的问题的解决方案.Windows10系统更新报错0x8024401c,该方案也适用于其他Windows10发行版和错误代码.

    2022年6月5日
    40
  • ubuntu eclipse 乱码「建议收藏」

    ubuntu eclipse 乱码「建议收藏」今天,把windows下的工程导入到了Linux下eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse默认会去读取系统的编码,所以Widnwos下的Eclipse的编码为GBK),而Ubuntu默认是不支持GBK编码的。所以,首先我们要先让Ubuntu支持GBK,方法如下:修改/var/lib/locales/supported.d/local文

    2022年5月25日
    38
  • 2k21本世代和次世代生涯一样吗_nba2k21次世代价格

    2k21本世代和次世代生涯一样吗_nba2k21次世代价格原题链接对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。输入格

    2022年8月8日
    7
  • 服务器机房排风系统图,机房新风系统和排风系统的方案设计方法-20210628031546.pdf-原创力文档…

    服务器机房排风系统图,机房新风系统和排风系统的方案设计方法-20210628031546.pdf-原创力文档…______________________________________________________________________________________________________________新风系统的方案设计方法:设计方案时,即便再简单的方案,我们也应该先做方案、再扒图纸、作出预算的程序,这样我们就不会丢项、报错。复杂的项目,应该编制联系人表格;方便现场沟通…

    2022年5月22日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号