思路:原地交换
数组元素索引和值是一对多的关系,因此,可以遍历数组并交换操作,使元素索引和值一一对应。遍历中,第一次遇到数字x,将其交换至索引x处;第二次遇到数字x,一定有nums[x]==x,此时得到一组重复数字。
class Solution {
public:
int findRepeatNumber(vector& nums) {
int i=0;
while(i
时间复杂度 O(n)
空间复杂度 O(1)

思路:原地交换
数组元素索引和值是一对多的关系,因此,可以遍历数组并交换操作,使元素索引和值一一对应。遍历中,第一次遇到数字x,将其交换至索引x处;第二次遇到数字x,一定有nums[x]==x,此时得到一组重复数字。
class Solution {
public:
int findRepeatNumber(vector& nums) {
int i=0;
while(i
时间复杂度 O(n)
空间复杂度 O(1)