283.移动零

Problem: 283. 移动零

思路

快慢指针,为nums[i] != 0 快慢指针都加一,并且交换`nums[i],nums[j],否则快指针加一

解题方法

  • 两个指针快指针i慢指针j

  • 开始遍历

    - 如果nums[i] != 0

        - 交换nums[i],nums[j]

        - j++

复杂度

时间复杂度:

添加时间复杂度, 示例: $O(n)$

空间复杂度:

添加空间复杂度, 示例: $O(n)$

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

class Solution {

public:

    void moveZeroes(vector<int>& nums) {

        int j = 0;

        for(int i = 0; i < nums.size(); i++) {

            if(nums[i] != 0) {

                std::swap(nums[i],nums[j]);

                j++;

            }

        }

    }

};