「 每日一练,快乐水题 」1089. 复写零

Posted 谁吃薄荷糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「 每日一练,快乐水题 」1089. 复写零相关的知识,希望对你有一定的参考价值。

文章目录


🔴力扣原题:

1089. 复写零

🟠题目简述:

给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。

注意:请不要在超过该数组长度的位置写入元素。

要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。

🟡解题思路:

  1. 模拟大法好啊!
  2. 根据条件构造一个新的vector(0值插入两次;非0值插入1次)
  3. 把新vector赋值给arr(只处理arr个数的数据即可)
  4. over;

🟢C++代码:

class Solution 
public:
    void duplicateZeros(vector<int>& arr) 
        int n = arr.size();
        vector<int> arr1;

        for(auto i : arr)
        
            if(i == 0)
            
                arr1.push_back(0);

                arr1.push_back(0);
            
            else
            
                arr1.push_back(i);
            
        

        for(int i = 0; i < n; ++i)
        
            arr[i] = arr1[i];
        

        return;
    
;

🔵结果展示:

以上是关于「 每日一练,快乐水题 」1089. 复写零的主要内容,如果未能解决你的问题,请参考以下文章

「 每日一练,快乐水题 」1089. 复写零

「 每日一练,快乐水题 」217. 存在重复元素

「 每日一练,快乐水题 」383. 赎金信

「 每日一练,快乐水题 」141. 环形链表

「 每日一练,快乐水题 」1051. 高度检查器

「 每日一练,快乐水题 」1331. 数组序号转换