布尔数组 class Solution { public int findRepeatNumber(int[] nums) { int len = nums.length; boolean[] vis = new boolean[len]; for(int i:nums){ if(vis[i]==true) return i; vis[i] = true; } return -1 ; } } HashSet class Solution { public int findRepeatNumber(int[] nums) { Set<Integer> hs = new HashSet<>(); for(int i:nums) if(!hs.add(i)) return i; return -1; } } 交换占位 class Solution { public int findRepeatNumber(int[] nums) { for(int i=0;i<nums.length;i++){ if(nums[i]==nums[nums[i]] && nums[i]!=i) return nums[i]; //swap int temp = nums[i]; nums[i] = nums[temp]; nums[temp] = temp; } return -1; } }