【剑指Offer】数组中重复的数字
发布日期:2022-02-10 08:55:12 浏览次数:14 分类:技术文章

本文共 631 字,大约阅读时间需要 2 分钟。

题目

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

思路

从今天开始换力扣上面答题了,牛客的数据操作还是比力扣差点。

顺便说一下C++里面用

std::ios::sync_with_stdio(false);

这句竟然可以让执行时间成倍缩短这是我没想到的。

本题思路是另开一个等长数组,初始化归零,读到一个数就把他下标位置对应+1,如果再读到对应下标不为0的,直接return返回当前数。

代码

class Solution {public:
int findRepeatNumber(vector & nums) {
std::ios::sync_with_stdio(false);
int len = nums.size();
if(len <= 0){
return -1;
}
int flag[100001] = {0};
for(int i = 0;i < len;i++){
if(flag[nums[i]] != 0){
return nums[i];
}else{
flag[nums[i]] = 1;
}
}
return -1;
}};

 

转载地址:https://blog.csdn.net/hanmin822/article/details/105549925 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指Offer】顺时针打印矩阵
下一篇:【剑指Offer】矩阵中的路径

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2023年03月08日 19时51分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章