Leetcode_26_刪除排序數(shù)組中的重復(fù)項_e

給定一個排序數(shù)組瘟裸,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度域慷。

不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

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

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

說明:

為什么返回數(shù)值是整數(shù)估脆,但輸出的答案是數(shù)組呢?

請注意,輸入數(shù)組是以“引用”方式傳遞的座云,這意味著在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的疙赠。

你可以想象內(nèi)部操作如下:

**nums** 是以“引用”方式傳遞的。也就是說朦拖,不對實參做任何拷貝
int len = removeDuplicates(nums);

// 在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的圃阳。
// 根據(jù)你的函數(shù)返回的長度, 它會打印出數(shù)組中**該長度范圍內(nèi)**的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

逆序遍歷法

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if not nums:
            return 0
        j = 0
        for j in range(len(nums)-1, 0, -1):
            if nums[j] == nums[j-1]:
                nums.pop(j-1)
        return len(nums)

雙指針法

數(shù)組完成排序后璧帝,我們可以放置兩個指針 i 和 j捍岳,其中 i 是慢指針,而 j 是快指針睬隶。只要 nums[i]=nums[j]锣夹,我們就增加 j 以跳過重復(fù)項。
當我們遇到 nums[j] != nums[i] 時苏潜,跳過重復(fù)項的運行已經(jīng)結(jié)束银萍,因此我們必須把它nums[j]的值復(fù)制到 nums[i+1]。然后遞增 i恤左,接著我們將再次重復(fù)相同的過程贴唇,直到 j 到達數(shù)組的末尾為止。

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if not nums:
            return 0
        i = 0
        for j in range(1, len(nums)):
            if nums[j] != nums[i]:
                i += 1
                nums[i] = nums[j]
        return i + 1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飞袋,一起剝皮案震驚了整個濱河市戳气,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巧鸭,老刑警劉巖瓶您,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蹄皱,居然都是意外死亡览闰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門巷折,熙熙樓的掌柜王于貴愁眉苦臉地迎上來压鉴,“玉大人,你說我怎么就攤上這事锻拘∮涂裕” “怎么了击蹲?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長婉宰。 經(jīng)常有香客問我歌豺,道長,這世上最難降的妖魔是什么心包? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任类咧,我火速辦了婚禮,結(jié)果婚禮上蟹腾,老公的妹妹穿的比我還像新娘痕惋。我一直安慰自己,他們只是感情好娃殖,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布值戳。 她就那樣靜靜地躺著,像睡著了一般炉爆。 火紅的嫁衣襯著肌膚如雪堕虹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天芬首,我揣著相機與錄音赴捞,去河邊找鬼。 笑死郁稍,一個胖子當著我的面吹牛螟炫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艺晴,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掸屡!你這毒婦竟也來了封寞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仅财,失蹤者是張志新(化名)和其女友劉穎狈究,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盏求,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡抖锥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碎罚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磅废。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荆烈,靈堂內(nèi)的尸體忽然破棺而出拯勉,到底是詐尸還是另有隱情竟趾,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布宫峦,位于F島的核電站岔帽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏导绷。R本人自食惡果不足惜犀勒,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妥曲。 院中可真熱鬧贾费,春花似錦、人聲如沸逾一。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遵堵。三九已至箱玷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陌宿,已是汗流浹背锡足。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留壳坪,地道東北人舶得。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像爽蝴,于是被迫代替她去往敵國和親沐批。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容