要求不采用hashmap
public static void main(String[] args) {
int[] nums = { 1, 2, 4, 3, 0 };
System.out.println(findDuplicate(nums));
Arrays.stream(nums).forEach(System.out::print);
}
public static int findDuplicate(int[] nums) {
int len = nums.length;
//注意这里的for循环写法,在交换元素后,还要进行判断
for (int i = 0; i < len;) {
if (nums[i] != i) {
// 不相等
int temp = nums[i];
if (temp == nums[temp]) {
return temp;
}
nums[i] = nums[temp];
nums[temp] = temp;
} else {
i++;
}
}
return -1;
}
public static void main(Str