283. Move Zeroes

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:

  1. You must do this in-place without making a copy of the array.
  2. 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++;
            }
        }
原文地址:https://www.cnblogs.com/chucklu/p/10432722.html