一次遍历,j
相当于遍历到第一个零元素,将其和非零元素i
交换,
使用的是leetcode题解的动图
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n = nums.size();
int j = 0;
for (int i = 0; i < n; ++i) {
if (nums[i] != 0) {
swap(nums[i], nums[j]);
++j;
}
}
}
};
自己的解法中一定要注意数组的越界问题!!!