标签:public out 写法 交换 find 数组 ++ div shm
要求不采用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;
}
找出长度为n的数组中重复的一个数字(数字范围在0~n-1) 不采用hashmap
标签:public out 写法 交换 find 数组 ++ div shm
原文地址:https://www.cnblogs.com/moris5013/p/10148580.html