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

最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ù)組中的重復項的評論 (共 條)

分享到微博請遵守國家法律
故城县| 阳谷县| 海城市| 保山市| 福海县| 海丰县| 菏泽市| 綦江县| 秭归县| 嘉鱼县| 蚌埠市| 突泉县| 湟中县| 电白县| 虹口区| 斗六市| 五大连池市| 洛浦县| 郓城县| 朝阳区| 柳州市| 北宁市| 施秉县| 扬中市| 乌兰县| 郯城县| 曲麻莱县| 保定市| 慈利县| 安国市| 樟树市| 油尖旺区| 商水县| 扶风县| 兰西县| 南宁市| 涡阳县| 梓潼县| 于田县| 蒙自县| 和平区|