Approach 1: Optimal class Solution: def removeElement(self, nums: List[int], val: int) -> int: left = 0 for right in range(len(nums)): if nums[right] == val: continue nums[left] = nums[right] left += 1 return left Complexity Time: O(n) Space: O(1) Other Languages Go func removeElement(nums []int, val int) int { left := 0 for i := range len(nums) { if nums[i] == val { continue } nums[left] = nums[i] left += 1 } return left }