def move_zeroes(nums):
k=0
for n in nums:
if n!=0: nums[k]=n; k+=1
while k<len(nums): nums[k]=0; k+=1
public void moveZeroes(int[] nums){
int k=0;
for(int n:nums) if(n!=0) nums[k++]=n;
while(k<nums.length) nums[k++]=0;
}
k+=1 vs k++. Logic identical.
def move_zeroes(nums):
k=0
for n in nums:
if n!=0: nums[k]=n; k+=1
while k<len(nums): nums[k]=0; k+=1
public void moveZeroes(int[] nums){
int k=0;
for(int n:nums) if(n!=0) nums[k++]=n;
while(k<nums.length) nums[k++]=0;
}
1. Write pointer k 2. Copy non-zeros 3. Fill zeros