移动0元素---------- Move Zeroes283


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) {
        int index=0;
        for(int num:nums)
        {
            if(num!=0){
                nums[index++]=num;
            }
        }
        while(index<nums.length){
            nums[index++]=0;
        }
        
    }
 

还有一种做法:   先排序,然后整体换位置,最后再将前面的非0数字换位置   类似Rotate Array

猜你喜欢

转载自blog.csdn.net/si444555666777/article/details/81266332