leetcode 283 移动零

通过一个快指针和慢指针在一个 for 循环下完成两个 for 循环的工作

  • 快指针i:寻找新数组的元素 ,新数组就是不含有目标元素的数组,当下标为 i 的数值非0时,将该值挪动给下标 slowIndex 的位置
  • 慢指针slowIndex:指向更新 新数组下标的位置
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        // 慢指针 j
        int j = 0;
        // 快指针 i
        for (int i = 0; i < nums.size(); i++) {
            if(nums[i] != 0) {
                nums[j] = nums[i];
                j++; 
            }
        }
        for (int i = j; i < nums.size(); i++) {
            nums[i] = 0;
        }
    }
};

你可能感兴趣的:(LeetCode,leetcode,算法,数据结构)