算法】刪除排序數(shù)組中的重復項,"> 算法】刪除排序數(shù)組中的重復項。">

五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【求知=>算法】刪除排序數(shù)組中的重復項

2021-12-26 00:55 作者:雨夜的博客  | 我要投稿


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

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

    說明:

    為什么返回數(shù)值是整數(shù),但輸出的答案是數(shù)組呢? 請注意,輸入數(shù)組是以「引用」方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的。

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


示例 1:

輸入:nums?=?[1,1,2]

輸出:2,?nums?=?[1,2]

解釋:函數(shù)應該返回新的長度?2?,并且原數(shù)組?nums?的前兩個元素被修改為?1,?2?。不需要考慮數(shù)組中超出新長度后面的元素

示例 2:

輸入:nums?=?[0,0,1,1,1,2,2,3,3,4]

輸出:5,?nums?=?[0,1,2,3,4]

解釋:函數(shù)應該返回新的長度?5?,?并且原數(shù)組?nums?的前五個元素被修改為?0,?1,?2,?3,?4?。不需要考慮數(shù)組中超出新長度后面的元素???提示:

  • 0?<=?nums.length?<=?3?*?104

  • -104?<=?nums[i]?<=?104

  • nums?已按升序排列

解題思路

雙指針思路: 設置兩個值,分別代表兩個指針 一個左指針,一個右指針?


    1. 使用right指針遍歷整個數(shù)組

    2. 如果right對應的值比左指針的大,則left +1 ,且把右指針的值賦予當前左指針所指,right++

    3. 如果右指針和左指針相同,則不做操作,right++

    4. 最后返回左指針+1,因為都是從0 開始的。

    擴展解題:

    • 交換數(shù)組的思路:

    • 定義一個空的數(shù)組

    • 循環(huán)便利數(shù)組、判斷循環(huán)的子集不再新的數(shù)組中,將新的子集添加到新的數(shù)組中,反正pass,然后返回新的數(shù)組



  • Set函數(shù)思路:

  • 創(chuàng)建一個無序不重復元素集,可進行關系測試,刪除重復數(shù)據(jù)



  • 統(tǒng)計字符串出現(xiàn)的次數(shù),刪除重復的思路:

  • 定義新的數(shù)組

  • 循環(huán)數(shù)組

  • 統(tǒng)計字符串里某個字符串出現(xiàn)的次數(shù)

  • 設定刪除的次數(shù),比出現(xiàn)的總次數(shù)少一個

  • 比如出現(xiàn)3次,循環(huán)刪除times-1次的i,返回數(shù)組



【求知=>算法】刪除排序數(shù)組中的重復項的評論 (共 條)

分享到微博請遵守國家法律
北京市| 昭苏县| 新蔡县| 武宁县| 马山县| 博白县| 红原县| 开封县| 长乐市| 新龙县| 辉县市| 财经| 正宁县| 思南县| 绍兴市| 沅陵县| 巨野县| 凌海市| 玉树县| 乐业县| 塔城市| 神农架林区| 柳林县| 托克托县| 屯门区| 沅江市| 鹤庆县| 上林县| 永平县| 苏州市| 黎川县| 邳州市| 五台县| 始兴县| 宜宾市| 饶河县| 香河县| 枣庄市| 五寨县| 凉山| 灯塔市|