leetcode链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/
题目
解法
分析:数组 nums 长度为 n ,且所有数字都在 0 - n-1 的范围内。因此可以采用使用另外一个长度为 n 的数组,然后对 nums 数组进行遍历,每遍历一个值 value,在新建数组下标为 value 的元素上进行判断,如果数组元素为0,则加一,如果为1,就将当前 value 返回。即 hash 表法。
// 使用布尔数组class Solution {public int findRepeatNumber(int[] nums) {int len = nums.length;boolean[] tmp = new boolean[len];int res = 0;for(int num:nums){if (tmp[num]){res = num;break;} else {tmp[num] = true;}}return res;}}// 使用整形数组class Solution {public int findRepeatNumber(int[] nums) {int len = nums.length;int[] res = new int[len];for(int num:nums){res[num]++;if(res[num] > 1){return num;}}return -1;}}
