026 Remove Duplicates from Sorted Array

Given a sorted array nums, remove the duplicates in-place such that each element appears only once and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

Example:

Given nums = [1,1,2],
Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond the returned length.

Given nums = [0,0,1,1,1,2,2,3,3,4],
Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.
It doesn't matter what values are set beyond the returned length.

Clarification:

Confused why the returned value is an integer but your answer is an array?
Note that the input array is passed in by reference, which means modification to the input array will be known to the caller as well.

Internally you can think of this:

// nums is passed in by reference. (i.e., without making a copy)
int len = removeDuplicates(nums);

// any modification to nums in your function would be known by the caller.
// using the length returned by your function, it prints the first len elements.
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

解釋下題目:

返回數(shù)組中不重復的數(shù)字的個數(shù)。上面解釋了一下為什么要返回不同數(shù)組的個數(shù)而不是返回處理過后的數(shù)組受葛。不能使用額外的空間,也就是說必須在這個數(shù)組上進行處理鱼喉。

1. 處理之后放入數(shù)組前端

實際耗時:12ms

public int removeDuplicates(int[] nums) {
        int length = nums.length;
        if (length == 0) {
            return 0;
        }
        int count = 0;
        for (int i = 1; i < length; i++) {
            if (nums[i] != nums[count]) {
                count++;
                nums[count] = nums[i];
            }
        }
        return count + 1;
    }

??思路:因為是已經(jīng)排過序的數(shù)組墓造,所以相同的數(shù)肯定是相鄰的,而且是刪除重復的(其實也不是刪除)元素,所以最壞的情況是這個數(shù)組本身就沒有重復的纱控。思路就是處理過后就覆蓋掉辆毡,因為肯定有處理后的數(shù)組<=處理前的數(shù)組,所以不用擔心甜害。

時間復雜度O(n) n為數(shù)組長度
空間復雜度O(1)

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舶掖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子尔店,更是在濱河造成了極大的恐慌眨攘,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚣州,死亡現(xiàn)場離奇詭異鲫售,居然都是意外死亡,警方通過查閱死者的電腦和手機该肴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門情竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匀哄,你說我怎么就攤上這事鲤妥。” “怎么了拱雏?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵棉安,是天一觀的道長。 經(jīng)常有香客問我铸抑,道長贡耽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任鹊汛,我火速辦了婚禮蒲赂,結果婚禮上,老公的妹妹穿的比我還像新娘刁憋。我一直安慰自己透罢,他們只是感情好埃脏,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般喻频。 火紅的嫁衣襯著肌膚如雪间景。 梳的紋絲不亂的頭發(fā)上兄春,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天主胧,我揣著相機與錄音,去河邊找鬼疤苹。 笑死互广,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惫皱,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼像樊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旅敷?” 一聲冷哼從身側響起凶硅,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扫皱,沒想到半個月后足绅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡韩脑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年氢妈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片段多。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡首量,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出进苍,到底是詐尸還是另有隱情加缘,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布觉啊,位于F島的核電站拣宏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杠人。R本人自食惡果不足惜勋乾,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗡善。 院中可真熱鬧辑莫,春花似錦、人聲如沸罩引。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袁铐。三九已至揭蜒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昭躺,已是汗流浹背忌锯。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留领炫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓张咳,卻偏偏與公主長得像帝洪,于是被迫代替她去往敵國和親似舵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

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