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

本文共 706 字,大约阅读时间需要 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】矩阵中的路径

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月10日 08时48分44秒