国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode —— 復(fù)寫零(雙指針)

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode —— 復(fù)寫零(雙指針)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目鏈接

力扣(LeetCode)官網(wǎng) - 全球極客摯愛的技術(shù)成長(zhǎng)平臺(tái)

LeetCode —— 復(fù)寫零(雙指針),算法練習(xí),leetcode,算法

題目解析

將數(shù)組中出現(xiàn)的每個(gè)零復(fù)寫一遍,然后將其他元素向右平移,數(shù)組長(zhǎng)度不能改變。

法一:使用額外空間的做法

LeetCode —— 復(fù)寫零(雙指針),算法練習(xí),leetcode,算法

class Solution 
{
public:
    void duplicateZeros(vector<int>& arr) 
    {
        // 定義一個(gè)額外的vector
        vector<int> v;
        // 遍歷數(shù)組
        for(auto&e:arr)
        {
            // 如果該元素不為0,則向新數(shù)組中插入一個(gè)該元素
            if(e) v.push_back(e);
            // 如果該元素為0,則向新數(shù)組中插入兩個(gè)該元素
            else
            {
                v.push_back(0);
                v.push_back(0);
            }
        }
        // 改變新數(shù)組的大小為老數(shù)組大小
        v.resize(arr.size());
        // 將老數(shù)組賦值給新數(shù)組
        arr=v;
    }
};

法二:原地修改的做法

LeetCode —— 復(fù)寫零(雙指針),算法練習(xí),leetcode,算法

LeetCode —— 復(fù)寫零(雙指針),算法練習(xí),leetcode,算法?

LeetCode —— 復(fù)寫零(雙指針),算法練習(xí),leetcode,算法?

class Solution 
{
public:
    void duplicateZeros(vector<int>& arr) 
    {
        int n=arr.size();
        int cur=0,dest=-1;
        // 找最后一個(gè)復(fù)寫的元素
        while(cur<n)
        {
            if(arr[cur]==0) dest+=2;
            else dest++;
            if(dest>=n-1) break;
            cur++;
        }
        // 處理邊界情況
        if(dest==n)
        {
            arr[n-1]=0;
            cur--;
            dest-=2;
        }
        // 覆蓋
        while(cur>=0)
        {
            if(arr[cur]==0)
            {
                arr[dest--]=arr[cur];
                arr[dest--]=arr[cur--];
            }
            else
            {
                arr[dest--]=arr[cur--];
            }
        }
    }
};

?文章來源地址http://www.zghlxwxcb.cn/news/detail-696079.html

到了這里,關(guān)于LeetCode —— 復(fù)寫零(雙指針)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [LeetCode]-283. 移動(dòng)零-1089. 復(fù)寫零

    [LeetCode]-283. 移動(dòng)零-1089. 復(fù)寫零

    目錄 283. 移動(dòng)零 描述 ?解析 代碼 1089. 復(fù)寫零 描述 解析 代碼 283. 移動(dòng)零 https://leetcode.cn/problems/move-zeroes/ 給定一個(gè)數(shù)組? nums ,編寫一個(gè)函數(shù)將所有? 0 ?移動(dòng)到數(shù)組的末尾,同時(shí)保持非零元素的相對(duì)順序。 請(qǐng)注意 ?,必須在不復(fù)制數(shù)組的情況下原地對(duì)數(shù)組進(jìn)行操作。 示例

    2024年02月05日
    瀏覽(20)
  • 【算法專題突破】雙指針 - 復(fù)寫零(2)

    【算法專題突破】雙指針 - 復(fù)寫零(2)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:1089. 復(fù)寫零 - 力扣(Leetcode) 我先來讀題, 題目的意思非常的簡(jiǎn)單,其實(shí)就是, 遇到 0 就復(fù)制一個(gè)寫進(jìn)數(shù)組,然后右邊的元素就右移一位, 看一眼例子可以很容易理解題意。? 一般像這種需要移動(dòng)數(shù)組的元素

    2024年02月11日
    瀏覽(21)
  • 【優(yōu)選算法】專題1 -- 雙指針 -- 復(fù)寫0

    【優(yōu)選算法】專題1 -- 雙指針 -- 復(fù)寫0

    前言: 補(bǔ)充一下前文沒有寫到的雙指針入門知識(shí):專題1 -- 雙指針 -- 移動(dòng)零 目錄 基礎(chǔ)入門知識(shí): 1. 復(fù)寫零(easy) 1. 題?鏈接:1089.復(fù)習(xí)0 - 力扣(LeetCode) 2. 題?描述: 3.算法原理: 異地操作 本地操作 【從后向前的復(fù)寫過程】 整體思路: ??1.先找到最后一個(gè)“復(fù)寫”的

    2024年04月17日
    瀏覽(19)
  • 【算法】活用雙指針完成復(fù)寫零操作

    【算法】活用雙指針完成復(fù)寫零操作

    Problem: 1089. 復(fù)寫零 首先我們來分析一下本題的題目意思 可以看到題目中給到了一個(gè)數(shù)組,意思是讓我們將數(shù)組中的零元素都復(fù)寫一遍,然后將其余的元素向后平移 光就上面這樣來看還是不太形象,我們通過畫圖來分析一下,通過下圖我們可以看到,凡是0的都復(fù)寫了兩遍,凡

    2024年02月11日
    瀏覽(21)
  • Leetcode | 對(duì)撞指針?biāo)惴üP記

    對(duì)撞指針的基本思想是在 數(shù)組或鏈表等數(shù)據(jù)結(jié)構(gòu) 中使用兩個(gè)指針( left 或 right 、 start 或 end 等表示),分別從不同的方向(通常是數(shù)組的兩端)移動(dòng),以便有效地進(jìn)行 搜索、遍歷或判斷 。 對(duì)撞指針常見的運(yùn)用場(chǎng)景包括: 排序數(shù)組的查找 :對(duì)撞指針可以用于在已排序的數(shù)

    2024年02月12日
    瀏覽(26)
  • 算法練習(xí)--leetcode 數(shù)組

    算法練習(xí)--leetcode 數(shù)組

    輸入n階樓梯,每次爬1或者2個(gè)臺(tái)階,有多少種方法可以爬到樓頂? 示例1:輸入2, 輸出2 一次爬2階; 一次爬1階; 故兩種方法。 示例2: 輸入3, 輸出3 三個(gè)1; 一個(gè)1 + 一個(gè) 2; 一個(gè)2 + 一個(gè)1; 思路分析: 采用遞歸求解 python實(shí)現(xiàn): java實(shí)現(xiàn) : 類似爬樓梯問題。 ? 給定一個(gè) 整

    2024年02月14日
    瀏覽(21)
  • 【算法挨揍日記】day01——雙指針?biāo)惴╛移動(dòng)零、 復(fù)寫零

    【算法挨揍日記】day01——雙指針?biāo)惴╛移動(dòng)零、 復(fù)寫零

    283.?移動(dòng)零 https://leetcode.cn/problems/move-zeroes/ 題目: 給定一個(gè)數(shù)組? nums ,編寫一個(gè)函數(shù)將所有? 0 ?移動(dòng)到數(shù)組的末尾,同時(shí)保持非零元素的相對(duì)順序。 請(qǐng)注意 ?,必須在不復(fù)制數(shù)組的情況下原地對(duì)數(shù)組進(jìn)行操作。 ? ?解題思路: 我們可以利用兩個(gè)指針(dest和cur)的方法,

    2024年02月11日
    瀏覽(25)
  • LeetCode算法小抄 -- 鏈表(快慢指針、雙指針、回文鏈表)

    ?申明: 未經(jīng)許可,禁止以任何形式轉(zhuǎn)載,若要引用,請(qǐng)標(biāo)注鏈接地址。 全文共計(jì)10077字,閱讀大概需要10分鐘 ??更多學(xué)習(xí)內(nèi)容, 歡迎??關(guān)注??文末我的個(gè)人微信公眾號(hào):不懂開發(fā)的程序猿 個(gè)人網(wǎng)站:https://jerry-jy.co/ Collection 子接口之 Queue (LeetCode上經(jīng)常用,手撕算法題!

    2023年04月08日
    瀏覽(21)
  • 算法練習(xí)Day26 (Leetcode/Python-貪心算法)

    122. Best Time to Buy and Sell Stock II You are given an integer array? prices ?where? prices[i] ?is the price of a given stock on the? ith ?day. On each day, you may decide to buy and/or sell the stock. You can only hold? at most one ?share of the stock at any time. However, you can buy it then immediately sell it on the? same day . Find and return?

    2024年02月03日
    瀏覽(19)
  • 【算法練習(xí)】leetcode算法題合集之二叉樹篇

    【算法練習(xí)】leetcode算法題合集之二叉樹篇

    前序遍歷,中序遍歷,后序遍歷是根據(jù)處理根節(jié)點(diǎn)的位置來命名的。 樹的處理大多用到了遞歸,遞歸需要知道終止條件。 前序遍歷(中左右) 144.二叉樹的前序遍歷 中左右,先處理根節(jié)點(diǎn),再處理左子樹,再處理右子樹 非遞歸版實(shí)現(xiàn)前序遍歷 使用棧,當(dāng)前節(jié)點(diǎn)處理完,先塞

    2024年02月01日
    瀏覽(73)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包