1. 遍历搜索:题目已经假设一定有重复数字,且输出任意一个重复数据均可。
int findRepeatNumber(vector<int>& nums) {
for(unsigned i = 0; i < nums.size()-1; i++){
for(unsigned j = 0; j < nums.size(); j++){
if(nums[i] == nums[j]){
return nums[i];
}
}
}
return -1;
2. 先进行排序,再查找重复数字
int findRepeatNumber(vector<int>& nums) {
// 排序
sort(nums.begin(), nums.end());
int pre = nums[0];
for(vector<int>::iterator it = nums.begin()+1; it != nums.end(); ++it){
if(*it == pre){
return pre;
}
pre = *it;
}
return -1;
}
3. 哈希表:有点高深,没看懂,以后遇到类似的题再择机补充吧!