Open bitfishxyz opened 5 years ago
这种题目看起来很简单,但是又有一点绕人。 其实只要把真正要做的事情给搞清楚就行了:
遍历数组,找到非零元素,然后把非零元素填补到数组的头部
其实就是这个逻辑,写起来就非常简单了。
class Solution {
public void moveZeroes(int[] nums) {
// 表示已经找到的非零元素的个数
int size = 0;
// 遍历数组
for (int i = 0; i < nums.length; i++) {
// 找到非零元素
if (nums[i] != 0) {
// 填补到数组的头部
int temp = nums[i];
nums[i] = 0;
nums[size] = temp;
size++;
}
}
}
}
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
说明: