最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
leetcode怎么查看數(shù)組中重復(fù)的數(shù)字

這篇文章主要介紹了leetcode怎么查看數(shù)組中重復(fù)的數(shù)字,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

屏南網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,屏南網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為屏南近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的屏南做網(wǎng)站的公司定做!

 

題目鏈接

https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/

 

題目描述

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

在一個(gè)長度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0 ~ n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,
但不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每個(gè)數(shù)字重復(fù)了幾次。請找出數(shù)組中任意一個(gè)
重復(fù)的數(shù)字。

示例 1:

輸入:
[2, 3, 1, 0, 2, 5, 3]
輸出:2 或 3
 

限制:

2 <= n <= 100000

 

解題方案

 

思路 1

  • 標(biāo)簽:哈希
  • 使用 HashSet 來進(jìn)行處理,因?yàn)?HashSet 本身不允許出現(xiàn)重復(fù)元素,所以     當(dāng)添加元素失敗或已經(jīng)包含該數(shù)字時(shí),則表示出現(xiàn)了重復(fù)元素,將其返回即可。思路較為簡單,就不給圖了
  • 時(shí)間復(fù)雜度:O(n),空間復(fù)雜度:O(n)
 

代碼 1

  • Java 版本
class Solution {
   public int findRepeatNumber(int[] nums) {
       Set numsSet = new HashSet<>();
       for(int num: nums) {
           if(!numsSet.add(num)) {
               return num;
           }
       }
       return -1;
   }
}
 
  • JavaScript 版本
/**
* @param {number[]} nums
* @return {number}
*/
var findRepeatNumber = function(nums) {
   const numsSet = new Set();
   for(const num of nums) {
       if(numsSet.has(num)) {
           return num;
       } else {
           numsSet.add(num);
       }
   }
   return -1;
};
   

思路 2

  • 標(biāo)簽:哈希
  • 從題目描述中我們可以看出,因?yàn)樗袛?shù)字都在 0 ~ n-1 的范圍內(nèi),其實(shí)完全可以省掉額外的空間開辟,將每個(gè)位置的數(shù)交換映射到其對應(yīng)的數(shù)組下標(biāo)下面,當(dāng)出現(xiàn)新的元素與其對應(yīng)的下標(biāo)中的數(shù)字相等時(shí),即為重復(fù)數(shù)字
  • 這本質(zhì)還是哈希的思想,思路 1 是使用庫函數(shù)申請額外空間,思路 2 則是數(shù)組本身做哈希表,達(dá)到了節(jié)省空間的目的
  • 此處會(huì)用到 while 循環(huán),原因是保證交換過來的新元素位置也要正確
  • 時(shí)間復(fù)雜度:O(n),空間復(fù)雜度:O(1)
 

代碼 2

  • Java 版本
class Solution {
   public int findRepeatNumber(int[] nums) {
       int len = nums.length;
       for (int i = 0; i < len; i++) {
           while (nums[i] != i) {
               if (nums[i] == nums[nums[i]]) {
                   return nums[i];
               }
               int temp = nums[i];
               nums[i] = nums[temp];
               nums[temp] = temp;
           }
       }
       return -1;
   }
}
 
  • JavaScript 版本
/**
* @param {number[]} nums
* @return {number}
*/
var findRepeatNumber = function(nums) {
   const len = nums.length;
   for (let i = 0; i < len; i++) {
       while (nums[i] != i) {
           if (nums[i] == nums[nums[i]]) {
               return nums[i];
           }
           const temp = nums[i];
           nums[i] = nums[temp];
           nums[temp] = temp;
       }
   }
   return -1;
};
   

畫解 2

橫滑見完整畫解

leetcode怎么查看數(shù)組中重復(fù)的數(shù)字
leetcode怎么查看數(shù)組中重復(fù)的數(shù)字
leetcode怎么查看數(shù)組中重復(fù)的數(shù)字

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“l(fā)eetcode怎么查看數(shù)組中重復(fù)的數(shù)字”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


名稱欄目:leetcode怎么查看數(shù)組中重復(fù)的數(shù)字
網(wǎng)址分享:http://fisionsoft.com.cn/article/jghojs.html