刪除排序陣列中的重複項

中南大學蘋果實驗室發表於2020-10-12

作者:cyl

日期:2020-10-12

標籤:查重 遍歷

問題描述:

給定一個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 O(1) 額外空間的條件下完成。

示例

示例 1:

給定陣列 nums = [1,1,2],

函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為 1, 2。

你不需要考慮陣列中超出新長度後面的元素。
示例 2:

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

函式應該返回新的長度 5, 並且原陣列 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮陣列中超出新長度後面的元素。

解題思路:

遍歷列表 如果與當前元素與下一個相同則刪除掉此元素

程式碼

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        i = 0
        while( i<len(nums) ):
            if i+2 <= len(nums):
                #第i+1+1個元素不為空
                if nums[i] == nums[i+1]:
                    nums.remove(nums[i])
                    i -= 1
            else:
                return len(nums)
            i += 1

相關文章