一、题目内容
二、题解
解法1:
思路
代码
class Solution {public int findRepeatNumber(int[] nums) {Set<Integer> set = new HashSet<Integer>();for (int num: nums) {if (set.contains(num)) {return num;}set.add(num);}return 0;}}
解法1:
思路
类似布隆过滤器思想
原地交换,使 nums[i] = i,则一定存在两个value,同时等于nums[i]。
代码
class Solution {public int findRepeatNumber(int[] nums) {int i = 0;while (i < nums.length) {if (nums[i] == i) {i++;continue;}if (nums[nums[i]] == nums[i]) {return nums[i];}//当前索引位置对应值int temp = nums[i];//当前索引位置值与nums[temp]互换nums[i] = nums[temp];nums[temp] = temp;}return -1;}}
