给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
是什么?
移动零且不动其他元素
怎么做?
排序
初看题,七七有点懵,看看难度,简单题?
后面想了一下,其实就是换位嘛!
class Solution {
public void moveZeroes(int[] nums) {
// 初始化
int low = 0;
// 遍历
for (int fast = 0; fast < nums.length; fast++) {
// 判断是否为零,为后续换位提供条件
if (nums[fast]!=0) {
// 换位,不解释
int temp = nums[low];
nums[low] = nums[fast];
nums[fast] = temp;
// 向右一位
low++;
}
}
}
}
