Leetcode # 80. Remove Duplicates from Sorted Array II

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

My Solution

Time Complexity: O(len(nums))
Space Complexity: O(1)
(The input and output generally do not count towards the space complexity.)

class Solution:
  def removeDuplicates(self, nums: List[int]) -> int:
    insert_i = 0
    count = 1
    for i in range(1, len(nums)):
      if nums[i] != nums[i - 1]:
        for j in range(min(2, count)):
          nums[insert_i] = nums[i - 1]
          insert_i += 1
          count = 1
      else:
        count += 1
    for j in range(min(2, count)):
      nums[insert_i] = nums[- 1]
      insert_i += 1
    return insert_i

Better Solution

Time Complexity: O(len(sum))
Space Complexity: O(1)
(The input and output generally do not count towards the space complexity.)

class Solution:
  def removeDuplicates(self, nums: List[int]) -> int:
    insert_i = 1
    count = 1
    for i in range(1, len(nums)):
      if nums[i] == nums[i - 1]:
        count += 1
      else:
        count = 1
      
      # be skipped if count > 2
      if count <= 2:
        nums[insert_i] = nums[i]
        insert_i += 1
    return insert_i

關聯問題

Last Updated on 2023/08/16 by A1go

目錄
Bitnami