LongDz 的数字文墨提案

283. 移动零

2 min

题目

移动零 简单

思路

使用双指针技巧,左指针指向下一个非零元素应放置的位置,右指针遍历数组;当右指针遇到非零元素时,与左指针交换并移动左指针。

复杂度

  • 时间复杂度: O(n)O(n)
  • 空间复杂度: O(1)O(1)

代码

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int l = 0;int r = 0;
        while(r < nums.size()){
            if(nums[r])
            {
                swap(nums[l],nums[r]);
                l ++;
            }
            r++;
        }
        
    }
};