写点什么

LeetCode 题解:剑指 Offer 03. 数组中重复的数字,原地置换,JavaScript,详细注释

作者:Lee Chen
  • 2023-10-19
    福建
  • 本文字数:363 字

    阅读完需:约 1 分钟

原题链接:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/


解题思路:


  1. 遍历nums,如果发现nums[i]存储的值不为i,就把nums[i]存储到相应位置,即nums[nums[i]]

  2. 如果发现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] } }
// 如果没有重复的数字,返回-1 return -1};
复制代码


发布于: 刚刚阅读数: 5
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:剑指 Offer 03. 数组中重复的数字,原地置换,JavaScript,详细注释_LeetCode_Lee Chen_InfoQ写作社区