如果不是O(1)的空间,那我们可以和上到题一样桶排序过,但要$O(1)$的话,可以采取两层for
循环的暴力做法,思路是枚举数组中的数,如果有两个数位置不同但数值相同,那么直接return
这个数,否则无解return -1
。
代码:
class Solution {
public:
int duplicateInArray(vector<int>& nums) {
for (int i = 0; i < nums.size(); i ++)
for (int j = 0; j < i; j ++)//唯一要注意的点就是j不能与i相同
if (nums[i] == nums[j])
return nums[i];
return -1;
}
};
祝看到这篇题解的人$2022RP++$!!!