成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

?LeetCode 26:刪除排序數(shù)組中的重復項 Remove Duplicates from So

cnTomato / 357人閱讀

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

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

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.

示例 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ù)值是整數(shù),但輸出的答案是數(shù)組呢?

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

你可以想象內部操作如下:

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

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

? 定義兩個指針,指針 i 索引遍歷數(shù)組,指針 j 索引值與 i 索引值比較,如果相等則 i 繼續(xù)遍歷,如果不等則將索引 i 的值賦值得到索引 j+1 的值。

Java:
class Solution {
    public int removeDuplicates(int[] nums) {
        int numsLen = nums.length;
        if (numsLen < 1) return numsLen;//如果數(shù)組只有一個值或空數(shù)組,直接返回該數(shù)組的長度
        int j = 0;
        for (int i = 1; i < numsLen; i++) {//指針 i 從從索引 1 開始遍歷數(shù)組
            if (nums[i] != nums[j]) {//與索引 j 的值比較
                nums[++j] = nums[i];//如果不相等 索引j+1 ,并得到索引i的值
            }
        }
        return j + 1;//返回到指針 j,數(shù)組的長度
    }
}

? python這道題并沒有很特殊的解法。

Python3:
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        numsLen = len(nums)
        if(numsLen < 1):
            return numsLen
        j = 0
        for i in range(1, numsLen):
            if nums[j] != nums[i]:
                j += 1
                nums[j] = nums[i]
        return j+1
公眾號:愛寫bug(ID:iCodeBugs)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/45153.html

相關文章

  • ?LeetCode 26刪除排序數(shù)組中的重復 Remove Duplicates from So

    給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and re...

    Alan 評論0 收藏0
  • leetcode刷題記錄-【26 Remove Duplicates from Sorted Ar

    摘要:給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用額外空間的條件下完成。聲明兩個指針,為快指針,為慢指針如果遇到相同的數(shù),那么就跳過,。 給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組...

    heartFollower 評論0 收藏0
  • leetcode刷題記錄--【80 Remove Duplicates from Sorted Ar

    摘要:給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素最多出現(xiàn)兩次,返回移除后數(shù)組的新長度。正確思路對于每一個元素,都進行移動?;蛘弑容^不到最后一個對象。 給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素最多出現(xiàn)兩次,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 錯誤思路:由26題跳過一個的思...

    haobowd 評論0 收藏0
  • leetcode 26 Remove Duplicates from Sorted Array

    摘要:題目比較簡單,就是找出數(shù)組不重復的數(shù)字,返回不重復的數(shù)字個數(shù)。無需刪除重復數(shù)字,只需要保證數(shù)組的前位為不重復的個數(shù)字即可代碼如下 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not all...

    alaege 評論0 收藏0
  • ??思維導圖整理大廠面試高頻數(shù)組9: 刪除重復元素的通解問題, 力扣26/80??

    此專欄文章是對力扣上算法題目各種方法的總結和歸納, 整理出最重要的思路和知識重點并以思維導圖形式呈現(xiàn), 當然也會加上我對導圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經知道解題思路和方法, 想進一步加強理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內容). 關...

    MasonEast 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<