數(shù)組中重復(fù)的數(shù)字

方法一

哈希表/Set

方法二:原地交換

數(shù)組元素的索引和值是一對多的關(guān)系
因此可以遍歷數(shù)組并通過交換操作,使元素的索引與值一一對應(yīng),即nums[i]=i。就可以通過索引映射對應(yīng)的值,起到與字典等價的作用。

遍歷中,第一次遇到數(shù)字x時,將其交換至索引x處,而當(dāng)?shù)诙斡龅綌?shù)字x時,一定有numsp[x] = x,此時就可以得到一組重復(fù)的數(shù)字

var findRepeatNumber1 = function (nums) {
  const obj = {}  
  for (const i of nums) {
    if (!obj[i]) {
      obj[i] = true
    } else {
      return i
    }
  }
}

var findRepeatNumber2 = function (nums) {
  for (let i = 0; i < nums.length; i++) {
    if (i === nums[i]) {
      continue
    } else {
      let temp = nums[nums[i]]
      if (temp === nums[i]) {
        return temp
      }
      nums[nums[i]] = nums[i]
      nums[i] = temp
    }
  }
}

console.log(findRepeatNumber2([2, 3, 1, 0, 2, 5, 3])); 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容