1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ?LeetCode刷題實戰(zhàn)26:刪除排序數(shù)組中的重復項

        共 1523字,需瀏覽 4分鐘

         ·

        2020-09-02 00:04

        算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎知識和業(yè)務邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !


        今天和大家聊的問題叫做?刪除排序數(shù)組中的重復項,我們先來看題面:

        https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

        Given a sorted array nums, remove the duplicates in-place such that each element appear 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.

        題意


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

        樣例


        示例?1:

        給定數(shù)組 nums = [1,1,2],

        函數(shù)應該返回新的長度 2, 并且原數(shù)組 nums 的前兩個元素被修改為 1, 2。

        你不需要考慮數(shù)組中超出新長度后面的元素。


        示例?2:

        給定 nums = [0,0,1,1,1,2,2,3,3,4],

        函數(shù)應該返回新的長度 5, 并且原數(shù)組 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

        你不需要考慮數(shù)組中超出新長度后面的元素。

        題解

        數(shù)組完成排序后,我們可以放置兩個指針 i 和 j,其中 i 是慢指針,而 j是快指針。只要 nums[i] = nums[j]? ,我們就增加 j 以跳過重復項。
        當我們遇到 nums[j] ≠nums[i]?時,跳過重復項的運行已經(jīng)結束,因此我們必須把它(nums[j])的值復制到 nums[i + 1]。然后遞增 i,接著我們將再次重復相同的過程,直到 j 到達數(shù)組的末尾為止。
        時間復雜度:O(n),假設數(shù)組的長度是 n,那么 i 和 j 分別最多遍歷 n 步。
        空間復雜度:O(1)。

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


        好了,今天的文章就到這里,如果覺得有所收獲,請順手點個在看或者轉發(fā)吧,你們的支持是我最大的動力。

        上期推文:


        LeetCode1-20題匯總,速度收藏!
        LeetCode刷題實戰(zhàn)21:合并兩個有序鏈表
        LeetCode刷題實戰(zhàn)23:合并K個升序鏈表
        LeetCode刷題實戰(zhàn)24:兩兩交換鏈表中的節(jié)點
        LeetCode刷題實戰(zhàn)25:K 個一組翻轉鏈表


        瀏覽 52
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美性猛交XXXXXX | 我在做饭他在下添好爽好硬视频 | 朴诗妍三点尽露的片子在线播放 | 免费在线a | 欧美人妻少妇 | 国产黄片自拍 | 老熟女亂伦一区二区三区视频观看 | 亚洲专区免费 | 天天看A 深爱丁香 | 娇妻被别人带去杂交 |