久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

BAT面試算法進(jìn)階(8)- 刪除排序數(shù)組中的重復(fù)項(xiàng)

 長沙7喜 2018-08-25

小編溫馨提示,今天是我們堅(jiān)持學(xué)習(xí)算法的第8天!  


一.題目

    給定一個(gè)排序數(shù)組,,你需要在原地刪除重復(fù)出現(xiàn)的元素,,使得每個(gè)元素只出現(xiàn)一次,,返回移除后數(shù)組的新長度,。
    不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成,。

  • 示例 1 給定數(shù)組 nums = [1,1,2],
    函數(shù)應(yīng)該返回新的長度 2, 并且原數(shù)組 nums 的前兩個(gè)元素被修改為 1, 2,。 你不需要考慮數(shù)組中超出新長度后面的元素。

  • 示例 2 給定 nums = [0,0,1,1,1,2,2,3,3,4],函數(shù)應(yīng)該返回新的長度 5, 并且原數(shù)組 nums 的前五個(gè)元素被修改為 0, 1, 2, 3, 4,。你不需要考慮數(shù)組中超出新長度后面的元素,。

說明
為什么返回?cái)?shù)值是整數(shù)?但是輸出的結(jié)果卻是數(shù)組?
請(qǐng)注意,輸入數(shù)組是以“引用”方式傳遞的,,這意味著在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見的,。你可以想象內(nèi)部操作如下:


二.解決方案

  • 算法

         數(shù)組完成排序后,我們可以放置2個(gè)指針i和j,其中i是慢指針,而j是快指針.只要nums[i] = nums[j],我們就增加j,跳過此重復(fù)項(xiàng).

          當(dāng)我們遇到nums[j] != nums[i]時(shí),跳過重復(fù)項(xiàng)的運(yùn)行已經(jīng)結(jié)束,因此我們必須把它nums[j]的值復(fù)制到nums[i+1],然后遞增i,繼續(xù)重復(fù)相同的過程,直到j(luò)到底數(shù)組末尾.

三.代碼實(shí)現(xiàn)

Java Code


四.復(fù)雜度分析

  • 時(shí)間復(fù)雜度: O(n),假設(shè)數(shù)組的長度是n,那么i和j分別最多遍歷n步

  • 空間復(fù)雜度: O(1)

修煉自己,比到處迎合別人重要的多! 


'一起打卡學(xué)習(xí)吧!'

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多