283. Move Zeroes

Total Accepted: 67030
Total Submissions: 139534
Difficulty: Easy

Given an array nums, write a function to move all 0‘s to the end of it while maintaining the relative order of the non-zero elements.

For example, given nums  = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

Note:

  1. You must do this in-place without making a copy of the array.
  2. Minimize the total number of operations.

先把非零的写好,最后都把0写在最后即可

C++:

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int i=0,n=nums.size(),j=0;
        for(;i<n;++i){
            if(nums[i]!=0){
                nums[j++]=nums[i];
            }
        }
        for(;j<n;j++)
            nums[j]=0;
    }
};

打个小广告

欢迎加入我的小专栏「基你太美」一起学习。