Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.

Note that you must do this in-place without making a copy of the array.

 

Example 1:

Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]

Example 2:

Input: nums = [0]
Output: [0]

 

Constraints:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

 

Follow up: Could you minimize the total number of operations done?




 class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
#         zeros = 0
#         l = len(nums)

#         for i in range(l):
#             if nums[i] == 0:
#                 zeros+=1
#             else:
#                 nums[i-zeros] = nums[i]

#         while zeros!=0:
#             nums[l-zeros]=0
#             zeros-=1

        l = len(nums)
        i = 0
        while i<l:
            if nums[i] == 0:
                nums.pop(i)
                nums.append(0)
                l-=1
            else:
                i+=1

Random Note


  1. Effectively Using Django REST Framework Serializers
  2. How To Use DRF Serializers Effectively in Django
  3. My personal django rest framework serializer notes
  4. How to use DRF serializers effectively during write operations