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.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
把所有的0都移动到最末尾
思路:一开始想到了用冒泡排序法,把所有零都沉到末尾,后来想到用冒泡排序法的话会导致数组原来的顺序乱掉,不符合题意,于是换了种做法。
class Solution {
public void moveZeroes(int[] nums) {
int temp= 0; //用于保存前移数字的个数
for(int i = 0; i < nums.length; i++){
if(nums[i] != 0){
nums[temp]= nums[i]; //把不等于0的数字前移
temp++;
}
}
for(;temp<nums.length; temp++){
nums[temp] = 0; //把所有非零的数置0
}
}
}