标题
剑指offer–数组中重复的数字
提示:这里可以添加本文要记录的大概内容:
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字
提示:以下是本篇文章正文内容,下面案例可供参考
示例:
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
二、代码
这个代码可以对vector型nums进行排序
sort(nums.begin(),nums.end());
求长度:
nums.size();
完整代码如下:
int findRepeatNumber(vector<int>& nums) {
int i;
sort(nums.begin(),nums.end());//先排序数组
for(i=0;i<nums.size()-1;i++){//在遍历
if(nums[i]==nums[i+1]){//如果相等返回
return nums[i];
}
}
return -1;
}
此代码时间复杂度是O(n)空间复杂度O(1)
总结
代码不难,但是需要掌握sort的函数用法