题解:剑指 Offer 03. 数组中重复的数字,原地置换,JavaScript,详细注释"/>
LeetCode题解:剑指 Offer 03. 数组中重复的数字,原地置换,JavaScript,详细注释
原题链接:
/
解题思路:
- 遍历
nums
,如果发现nums[i]
存储的值不为i
,就把nums[i]
存储到相应位置,即nums[nums[i]]
。 - 如果发现
nums[nums[i]]
已经储存了nums[i]
,表示出现重复,将nums[i]
返回即可。
/*** @param {number[]} nums* @return {number}*/
var findRepeatNumber = function(nums) {for (let i = 0; i < nums.length; i++) {// 如果当前位置放的不是该有的值,表示需要将nums[i]放到对应位置上if (nums[i] !== i) {// 如果发现该放的位置已经有了对应的值,表示找到重复数字if (nums[i] === nums[nums[i]]) {return nums[i]}// 将nums[i]放到相应位置nums[nums[i]] = nums[i]}}// 如果没有重复的数字,返回-1return -1
};
更多推荐
LeetCode题解:剑指 Offer 03. 数组中重复的数字,原地置换,JavaScript,详细注释
发布评论