在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
通过解题 for of 的效率没有for 的效率高
/**
* @param {number[]} nums
* @return {number}
*/
var findRepeatNumber = function(nums) {
// nums.sort();
// for(let i=1; i<nums.length;i++){
// if(nums[i-1]===nums[i]){
// return nums[i-1];
// }
// }
let set = new Set();
for(let item of nums){
if(set.has(item)){
return item;
}
set.add(item);
}
let set = new Set();
for(let i=0; i<nums.length;i++){
if(set.has(nums[i])){
return nums[i];
}
set.add(nums[i]);
}
};