1. 程式人生 > >LeetCode283 移動零

LeetCode283 移動零

給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。

示例:

輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]

說明:

  1. 必須在原陣列上操作,不能拷貝額外的陣列。
  2. 儘量減少操作次數。

 

 

//章節 - 陣列和字串    
//五、小結
//6.移動零
/*
演算法思想:
    用兩個指標,一個不停的向後掃,找到非零位置,然後和前面那個指標交換位置即可。
*/
//演算法實現
class Solution {
public:
    void moveZeroes(vector<int
>& nums) { for (int i = 0, j = 0; i < nums.size(); ++i) { if (nums[i]) { swap(nums[i], nums[j++]); } } } };