LeetCode 解題練習:Remove Duplicates from Sorted Array

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.

題目原文描述 https://leetcode.com/problems/remove-duplicates-from-sorted-array/

中文描述

給定一個由小排到大的整數陣列 nums ,將陣列中重複的數字給刪除,並回傳不重複的元素個數k值。


範例一:

輸入 nums = [1, 1, 1, 2, 2, 3, 3]

輸出 k = 3, nums = [1, 2, 3, x, x, x, x]

因為 nums 有 3 個不重複的數字 [1, 2, 3]


解法:

設定兩個變數 left = 0 與 right = 0,從陣列左邊開始判斷,若 nums[left] != nums[right] 時,將 left 加 1 ,並將 nums[left] 設為 nums[right]。請參考底下圖片:


Python Code

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        left = 0
   
        for right in range(len(nums)):
            if nums[left] != nums[right]:
                left += 1
                nums[left] = nums[right]
       

        return left + 1



沒有留言: