https://leetcode.com/problems/move-zeroes/
https://medium.com/@rebeccahezhang/leetcode-283-move-zeroes-6e6c23380998
Given an array nums
, write a function to move all 0
's to the end of it while maintaining the relative order of the non-zero elements.
Example:
Input:[0,1,0,3,12]
Output:[1,3,12,0,0]
Note:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
public void MoveZeroes(int[] nums) { if (nums == null) { return; } int i = 0; int length = nums.Length - 1; int counter = 0; while (i < length) { if (nums[i] != 0) { nums[counter] = nums[i]; counter++; } i++; } while (counter < length) { nums[counter] = 0; counter++; } }