剑指offerDay1:找数组中重复的数字
剑指offer刷题第一天
计算机大三伪新手为了找工作开始刷题,从最细微的地方一点点复习。
题目
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
我的代码
class Solution {
public:
int findRepeatNumber(vector& nums) {
int n;
n=nums.size();
sort(nums.begin(),nums.end());
int i;
for(i=0;i<n;i++)
{
if(nums[i]==nums[i+1]){
break;
}
}
return nums[i];
}
};
解题思路
找出重复数字可能最先想得到的是挨个搜索,但比较费时.不过确实能得到正确答案.
我接下来想的就是假如把所有数字排个序,那是不是相邻的两个如果相等就是答案了,所以先调用sort,把所有数字都排序,在比较相邻两个。
总结
第一天从最简单的开始,复习到的知识有sort,学到的技巧是如何找出重复数字,虽然这个题已经AC好久了但还是挺兴奋的,希望自己坚持下去。其实中间还做了点别的,在开一篇文章总结一下。