From cd75ebecc3ca9430e546295584dcf3547ba89572 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sun, 21 May 2023 22:17:24 -0400 Subject: [PATCH] Time: 37 ms (68.92%), Space: 16.4 MB (9.76%) - LeetHub --- 27-remove-element/27-remove-element.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 27-remove-element/27-remove-element.py 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