最简单最直接的方法是用哈希表的方式,用set容器遍历的时候遇到没出现过的装进去,出现过的直接返回。但是这个方法不论是时间复杂度上还是空间复杂度上都不是最优解,逻辑上很简单的一道题,所以有必要优化一下。
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
int ans = 0;
unordered_set<int> setTable;
for(int i = 0; i < nums.size(); i++){
if(setTable.count(nums[i])){
ans = nums[i];
}
else{
setTable.insert({nums[i]});
}
}
return ans;
}
};