Two Pointer Approach
TC: O(n)
SC: O(1)
def sort_zero_one_two(nums):
i, j, k = 0, 0, len(nums) - 1
while j <= k:
if nums[j] == 1:
j += 1
elif nums[j] == 0:
nums[i], nums[j] = nums[j], nums[i]
i += 1
j += 1
else:
nums[j], nums[k] = nums[k], nums[j]
k -= 1
return nums