题目概述:给定一个包含0的数组nums,要求在原数组上进行操作,使得数组中所有的0都位于数组尾部,且数组中的非零元素顺序保持不变
解题思路:记录0的个数,当枚举到非零元素时,可以计算出它在答案数组中的位置:i - zeroCount。最后再用0覆盖数组尾部
代码:
class Solution {
public void moveZeroes(int[] nums) {
int n = nums.length;
int zeroCount = 0;
for(int i = 0; i < n; i ++){
if(nums[i] == 0)zeroCount++;
else nums[i - zeroCount] = nums[i];
}
for(int i = n - zeroCount; i < n; i ++)nums[i] = 0;
}
}
标签:nums,int,zeroCount,尾部,++,数组,移动
From: https://www.cnblogs.com/dengch/p/17799939.html