diff --git a/27-remove-element/27-remove-element.py b/27-remove-element/27-remove-element.py new file mode 100644 index 0000000..665b2ba --- /dev/null +++ b/27-remove-element/27-remove-element.py @@ -0,0 +1,22 @@ +class Solution: + def removeElement(self, nums: List[int], val: int) -> int: + if len(nums) == 0 : + return 0 + + + backIndex = len(nums) - 1 + i = 0 + while i < backIndex: + if nums[i] == val : + while nums[backIndex] == val: + backIndex -= 1 + if backIndex == i: + return backIndex if nums[backIndex] == val else backIndex + 1 + + nums[i] = nums[backIndex] + nums[backIndex] = val + backIndex -= 1 + i += 1 + + + return backIndex if nums[backIndex] == val else backIndex + 1 \ No newline at end of file