题目来源:https://leetcode-cn.com/problems/find-the-duplicate-number/
题目描述:
解题方法:由题目关键信息,一共有n+1个数,数组的值在1-n之间并且只有1个重复的数,我们利用下标和数值之间的关系遍历这个数组,每当遍历一个新的数,将这个数看成下标i,让nums[i]=0,当遍历到某个位置nums[i]等于0时,说明这个数被遍历过,则说明这个数字就是那个重复的数字。
代码如下:
class Solution {
public int findDuplicate(int[] nums) {
int i = 0;
while (nums[i] != 0) {
int x = nums[i];
nums[i] = 0;
i = x;
}
return i;
}
}