这题很简单,空间换时间,新建一个等长的bool数组,用bool数组记录元素是否被访问过。未访问过是false,访问了置true,遍历时如果发现bool数组该元素对应为true则说明之前访问过,返回即可。最后的return -1为了让编译器通知int类型的函数返回值。其实用不上,有的编译器也不会报错。
class Solution
{
public:
int findRepeatNumber(vector<int>& nums)
{
int length=nums.size();
bool flag[length]={false};
for(int i=0;i<length;i++)
{
if(flag[nums[i]]==false)
{
flag[nums[i]]=true;
}
else
{
return nums[i];
}
}
return -1;
}
};