问题描述
找出数组中重复的数字
在一个长度为 n 的数组 nums 里的所有数字都在 0 ~ n-1 的范围内,数组中某些数字是重复的,但是不知道有几个数字重复也不知道每个数字重复几次,请找出数组中任意一个重复的数字
#include <iostream>
#include <vector>
#include <algorithm>
bool findRepeatNumberVec(std::vector<int>& nums, std::vector<int>& resVec){
if (nums.empty()){
return false;
}
std::sort(nums.begin(), nums.end());
for (size_t int i=0; i < nums.size() - 1;i++){
if (nums[i] == nums[i+1]){
resVec.push_back(nums[i]);
}
}
return true;
}
void printVecMessage(std::vector<int>& resVec){
std::vector<int>::iterator it;
for(it=resVec.begin();it!=resVec.end();it++)
{
std::cout << *it << " ";
}
std::cout << std::endl;
}
int main()
{
std::vector<int> arr{3, 1, 0, 2, 5, 3, 5};
std::vector<int> resVec;
bool res = findRepeatNumberVec(arr, resVec);
if (res)
{
printVecMessage(resVec);
}
return 0;
}