Question
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?
Python Solution
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
l = len(nums)
def find_z(start):
for i in range(start,l):
if nums[i]==0:
return i
def find_nz(start):
for i in range(start,l):
if nums[i]!=0:
return i
start=0
if set(nums)=={0}:
pass
elif 0 not in nums:
pass
else:
while 1:
fz = find_z(start)
fnz = find_nz(fz)
if sum(nums[fz:])==0:
break
nums[fz],nums[fnz] = nums[fnz],nums[fz]
start= fz + 1
if sum(nums[start:])==0:
break

![[Solved] You are given an integer n and an integer start. Define an array nums where nums[i] = start + 2 * i (0-indexed) and n == nums.length. Return the bitwise XOR of all elements of nums.](https://machinelearningprojects.net/wp-content/uploads/2022/09/Leetcode-solutions-MLP-Feature-Image-1024x536.webp)