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

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

這篇具有很好參考價值的文章主要介紹了[LeetCode]-283. 移動零-1089. 復(fù)寫零。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

283. 移動零

描述

?解析

代碼

1089. 復(fù)寫零

描述

解析

代碼


283. 移動零

283. 移動零https://leetcode.cn/problems/move-zeroes/

描述

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

請注意?,必須在不復(fù)制數(shù)組的情況下原地對數(shù)組進(jìn)行操作。

示例 1:

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

示例 2:

輸入:nums=[0]
輸出: [0]

?解析

利用雙指針?biāo)枷?,前指針cur遍歷數(shù)組,判斷nums[cur],找出非0的數(shù),再與后指針dest下標(biāo)所在的數(shù)nums[dest]交換,將數(shù)組劃分為三塊區(qū)域非0區(qū)、0區(qū)、帶處理區(qū),直到cur處理完數(shù)組的最后一個數(shù)字。

[LeetCode]-283. 移動零-1089. 復(fù)寫零,算法百煉,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)

代碼

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        for(int cur=0,dest=-1;cur<nums.size();cur++)
            if(nums[cur])
                swap(nums[cur],nums[++dest]);
    }
};

1089. 復(fù)寫零

1089. 復(fù)寫零https://leetcode.cn/problems/duplicate-zeros/

描述

給你一個長度固定的整數(shù)數(shù)組?arr?,請你將該數(shù)組中出現(xiàn)的每個零都復(fù)寫一遍,并將其余的元素向右平移。

注意:請不要在超過該數(shù)組長度的位置寫入元素。請對輸入的數(shù)組?就地?進(jìn)行上述修改,不要從函數(shù)返回任何東西。

示例 1:

輸入:arr = [1,0,2,3,0,4,5,0]
輸出:[1,0,0,2,3,0,0,4]
解釋:調(diào)用函數(shù)后,輸入的數(shù)組將被修改為:[1,0,0,2,3,0,0,4]

示例 2:

輸入:arr = [1,2,3]
輸出:[1,2,3]
解釋:調(diào)用函數(shù)后,輸入的數(shù)組將被修改為:[1,2,3]

解析

1.先找到最后一個“復(fù)寫”的數(shù)

雙指針?biāo)惴ǎ?.先判斷cur位置的值。2.決定dest向后移動異步或者兩步。3.判斷一下是否已經(jīng)結(jié)束為止。4.cur++

2.處理一下邊界情況

3.“從后往前”完成復(fù)寫操作

[LeetCode]-283. 移動零-1089. 復(fù)寫零,算法百煉,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)

代碼

class Solution {
public:
    void duplicateZeros(vector<int>& arr) {
        int cur=0,dest=-1;int n=arr.size();
        //找到復(fù)寫后數(shù)組最后一個數(shù)下標(biāo)
        while(cur<n)
        {
            if(arr[cur]==0) dest+=2;
            else dest++;
            if(dest>=n-1) break;
            else cur++;
        }
        //處理邊界情況
        if(dest==n)
        {
            arr[n-1]=0;
            cur--;
            dest-=2;
        }
        //從后往前復(fù)寫
        while(cur>=0)
        {
            if(arr[cur]==0) {arr[dest--]=0;arr[dest--]=0;}
            else arr[dest--]=arr[cur];
            cur--;
        }
    }
};

[LeetCode]-283. 移動零-1089. 復(fù)寫零,算法百煉,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-753175.html

到了這里,關(guān)于[LeetCode]-283. 移動零-1089. 復(fù)寫零的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Leetcode 283. 移動零

    Leetcode 283. 移動零

    題目鏈接 283. 移動零 給定一個數(shù)組 nums ,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾,同時保持非零元素的相對順序。 請注意 ,必須在不復(fù)制數(shù)組的情況下原地對數(shù)組進(jìn)行操作。 示例 1: 示例 2: 這道題目的意思是我們將所有的0都移動到數(shù)組的后面,非零的元素放在前面.不過我

    2024年02月08日
    瀏覽(23)
  • leetcode283. 移動零

    leetcode283. 移動零

    難度:簡單題 題目 給定一個數(shù)組? nums ,編寫一個函數(shù)將所有? 0 ?移動到數(shù)組的末尾,同時保持非零元素的相對順序。 請注意 ?,必須在不復(fù)制數(shù)組的情況下原地對數(shù)組進(jìn)行操作。 思路: 一開始想,從前往后遍歷,遇到0就挪到最后。類似于冒泡的思想,但是這樣做的話時

    2024年02月12日
    瀏覽(18)
  • LeetCode283.移動零

    LeetCode283.移動零

    ?這道題還是很簡單的,我用的是雙指針,左指針i從頭開始遍歷數(shù)組,右指針j是從i后面第一個數(shù)開始遍歷,當(dāng)左指針i等于0的時候,右指針j去尋找i右邊第一個為0的數(shù)和i交換位置,交換完了就break內(nèi)層循環(huán),i往后移1位,j又從i的下一位開始,如果i不等于0,就不用進(jìn)內(nèi)層循環(huán)

    2024年02月12日
    瀏覽(20)
  • Leetcode 283.移動零

    Leetcode 283.移動零

    給定一個數(shù)組? nums ,編寫一個函數(shù)將所有? 0 ?移動到數(shù)組的末尾,同時保持非零元素的相對順序。 請注意 ?,必須在不復(fù)制數(shù)組的情況下原地對數(shù)組進(jìn)行操作。 示例 1: 示例 2: 提示 : 1 = nums.length = 104 -231?= nums[i] = 231?- 1 進(jìn)階: 你能盡量減少完成的操作次數(shù)嗎? 直接采用快

    2024年02月22日
    瀏覽(21)
  • 【每日一題】Leetcode - 283. 移動零

    【每日一題】Leetcode - 283. 移動零

    Leetcode - 283. 移動零 從右向左遍歷,遇到0,就將后面所有元素前移,同時更新長度,使其減1,因為移動n次,倒數(shù)n位就被0占據(jù),后續(xù)操作可忽略 前面的操作,從右向左,每次遇到0移動都要跑半個數(shù)組,慢在整體前移; 換個思路,從左向右,記錄首個0的位置,將后面的第一

    2024年02月11日
    瀏覽(14)
  • 力扣:1089. 復(fù)寫零

    力扣:1089. 復(fù)寫零

    今日分享一道力扣經(jīng)典題目,復(fù)寫0! 題目如下: 題目要求是進(jìn)行復(fù)寫0,而且不能超過原數(shù)組長度,且只能在原地進(jìn)行操作! 解決本題最好的方法就是進(jìn)行雙指針方法! 一、雙指針?biāo)惴ㄏ?找到最后一個要復(fù)寫的數(shù) ! 二、然后 從后向前進(jìn)行完成復(fù)寫 (因為如果要是從前向

    2024年02月06日
    瀏覽(16)
  • LeetCode 1089. Duplicate Zeros

    Given a fixed-length integer array? arr , duplicate each occurrence of zero, shifting the remaining elements to the right. Note ?that elements beyond the length of the original array are not written. Do the above modifications to the input array in place and do not return anything. Example 1: Example 2: Constraints: 1 = arr.length = 104 0 = arr[i] = 9 這題

    2024年02月11日
    瀏覽(18)
  • LeetCode —— 復(fù)寫零(雙指針)

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

    力扣(LeetCode)官網(wǎng) - 全球極客摯愛的技術(shù)成長平臺 將數(shù)組中出現(xiàn)的每個零復(fù)寫一遍,然后將其他元素向右平移,數(shù)組長度不能改變。 ? ? ?

    2024年02月10日
    瀏覽(15)
  • LeetCode每日一題之 復(fù)寫0

    LeetCode每日一題之 復(fù)寫0

    目錄 題目介紹: 算法原理: 特殊位置處理: 代碼實現(xiàn): 題目鏈接:. - 力扣(LeetCode) 這種對數(shù)組元素進(jìn)行修改,移動的題目我們?nèi)匀豢梢允褂秒p指針法,不過我們按照常規(guī)思路從左到右處理數(shù)組,不難發(fā)現(xiàn)如下這種問題: 當(dāng)cur指向1時,讓dest下一個元素復(fù)寫cur指向的元素

    2024年04月23日
    瀏覽(26)
  • 【算法挨揍日記】day01——雙指針?biāo)惴╛移動零、 復(fù)寫零

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

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

    2024年02月11日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包