1. 程式人生 > 其它 >Leetcode 1089. 複寫零

Leetcode 1089. 複寫零


給你一個長度固定的整數陣列 arr,請你將該陣列中出現的每個零都複寫一遍,並將其餘的元素向右平移。

注意:請不要在超過該陣列長度的位置寫入元素。

要求:請對輸入的陣列 就地 進行上述修改,不要從函式返回任何東西。

示例 1:

輸入:[1,0,2,3,0,4,5,0]
輸出:null
解釋:呼叫函式後,輸入的陣列將被修改為:[1,0,0,2,3,0,0,4]

示例 2:

輸入:[1,2,3]
輸出:null
解釋:呼叫函式後,輸入的陣列將被修改為:[1,2,3]

提示:

  • 1 <= arr.length <= 10000
  • 0 <= arr[i] <= 9

Code:

class Solution {
public:
    void duplicateZeros(vector<int>& arr) {
        int cnt=arr.size();
        for(int i=0;i<arr.size();i++)
        {
             if(i==cnt)
             break;
            if(arr[i]==0)
            {
               // arr.push_back(0);
                arr.insert(arr.begin()+i,0);
                arr.pop_back();
                i++;
            }
           
        }
    }
};