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

leetcode283. 移動(dòng)零

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

難度:簡(jiǎn)單題

題目

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

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

思路:

一開始想,從前往后遍歷,遇到0就挪到最后。類似于冒泡的思想,但是這樣做的話時(shí)間復(fù)雜度可能是 三次方。

再想,從前往后遍歷,利用 stl-vector 的特性,遇到0就從這個(gè)vector里面刪除當(dāng)前元素,但是刪除這個(gè)元素的話,該vector數(shù)組結(jié)構(gòu)會(huì)發(fā)生變化,即當(dāng)前下標(biāo)指向的自動(dòng)變?yōu)橄乱粋€(gè)元素,所以下標(biāo)這里要減1。

代碼:

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        // 要保持非零元素的相對(duì)順序,不能排序!
        // 依次遍歷,遇到0元素,則用冒泡排序的思想挪到最后 時(shí)間復(fù)雜度 三次方??
        // 思路,依次遍歷,如果遇到0,則從vector中刪掉該元素,并記錄刪了幾個(gè),最后添上去
        // 遍歷時(shí)刪元素會(huì)不會(huì)使數(shù)組下標(biāo)發(fā)生變化?會(huì)使數(shù)組結(jié)構(gòu)發(fā)生變化!
        int i = 0;
        int n = 0;  // 記錄刪掉了幾個(gè)0
        for(i = 0; i < nums.size(); i++){
            if(nums[i] == 0){
                nums.erase(nums.begin()+i);
                n++;
                i--;    // 刪掉當(dāng)前元素,數(shù)組會(huì)立即發(fā)生變化!
            }
        }
        // 刪了幾個(gè)元素,后面補(bǔ)幾個(gè)0        
        for(i = 0; i < n; i++){
            nums.push_back(0);
        }
    }
};

運(yùn)行結(jié)果:

leetcode283. 移動(dòng)零,LeetCode,算法

好吧,看了一下官方雙指針代碼,它的效果要好一點(diǎn)。。

leetcode283. 移動(dòng)零,LeetCode,算法

leetcode283. 移動(dòng)零,LeetCode,算法

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left = 0, right = 0;
        int n = nums.size();
        while(right < n){
            if(nums[right]){
                swap(nums[left], nums[right]);
                left++;
            }
            right++;
        }
    }
};

?它的思路:

leetcode283. 移動(dòng)零,LeetCode,算法

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

?

?

到了這里,關(guān)于leetcode283. 移動(dòng)零的文章就介紹完了。如果您還想了解更多內(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)文章

  • leetcode283. 移動(dòng)零

    leetcode283. 移動(dòng)零

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

    2024年02月12日
    瀏覽(18)
  • [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日
    瀏覽(21)
  • 【每日一題】Leetcode - 283. 移動(dòng)零

    【每日一題】Leetcode - 283. 移動(dòng)零

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

    2024年02月11日
    瀏覽(14)
  • [雙指針](一) Leetcode 283.移動(dòng)零和1089.復(fù)寫零

    [雙指針](一) Leetcode 283.移動(dòng)零和1089.復(fù)寫零

    [雙指針] Leetcode 283.移動(dòng)零和1089.復(fù)寫零 移動(dòng)零 283. 移動(dòng)零 1.題意分析 (1) 給你一個(gè)數(shù)組,將數(shù)組中的 所有0移動(dòng)到數(shù)組的末尾 (2) 保證非0元素在數(shù)組中 相對(duì)位置不變 (3) 在原數(shù)組中操作 2.解題思路 由于題目要求我們移動(dòng)數(shù)組內(nèi)容(也就是交換兩個(gè)數(shù)的位置),所以我們很容易

    2024年02月08日
    瀏覽(17)
  • 移動(dòng)零——力扣283

    移動(dòng)零——力扣283

    題目描述 雙指針

    2024年02月15日
    瀏覽(14)
  • leetcode:移動(dòng)零

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

    2024年02月12日
    瀏覽(12)
  • LeetCode——矩陣中移動(dòng)的最大次數(shù)

    LeetCode——矩陣中移動(dòng)的最大次數(shù)

    目錄 1、題目 ?2、題目解讀 ?3、代碼 2684. 矩陣中移動(dòng)的最大次數(shù) - 力扣(Leetcode) 給你一個(gè)下標(biāo)從? 0 ?開始、大小為? m x n ?的矩陣? grid ?,矩陣由若干? 正 ?整數(shù)組成。 你可以從矩陣 第一列 中的? 任一 ?單元格出發(fā),按以下方式遍歷? grid ?: 從單元格? (row, col) ?可以

    2024年02月06日
    瀏覽(17)
  • 【LeetCode: 2684. 矩陣中移動(dòng)的最大次數(shù) + dfs】

    【LeetCode: 2684. 矩陣中移動(dòng)的最大次數(shù) + dfs】

    ?? 算法題 ?? ?? 算法刷題專欄 | 面試必備算法 | 面試高頻算法 ?? ?? 越難的東西,越要努力堅(jiān)持,因?yàn)樗哂泻芨叩膬r(jià)值,算法就是這樣? ?? 作者簡(jiǎn)介:碩風(fēng)和煒,CSDN-Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??,保研|國(guó)家獎(jiǎng)學(xué)金|高中學(xué)習(xí)JAVA|大學(xué)完善JAVA開發(fā)技術(shù)棧|面試刷題|面經(jīng)八股文

    2024年03月19日
    瀏覽(30)
  • Leetcode每日一題:2337. 移動(dòng)片段得到字符串(2023.8.21 C++)

    目錄 2337. 移動(dòng)片段得到字符串 題目描述: 實(shí)現(xiàn)代碼與解析: 雙指針 原理思路: ????????給你兩個(gè)字符串? start ?和? target ?,長(zhǎng)度均為? n ?。每個(gè)字符串? 僅 ?由字符? \\\'L\\\' 、 \\\'R\\\' ?和? \\\'_\\\' ?組成,其中: 字符? \\\'L\\\' ?和? \\\'R\\\' ?表示片段,其中片段? \\\'L\\\' ?只有在其左側(cè)直接

    2024年02月11日
    瀏覽(16)
  • LeetCode算法題解(動(dòng)態(tài)規(guī)劃)|LeetCode343. 整數(shù)拆分、LeetCode96. 不同的二叉搜索樹

    LeetCode算法題解(動(dòng)態(tài)規(guī)劃)|LeetCode343. 整數(shù)拆分、LeetCode96. 不同的二叉搜索樹

    題目鏈接:343. 整數(shù)拆分 題目描述: 給定一個(gè)正整數(shù)? n ?,將其拆分為? k ?個(gè)? 正整數(shù) ?的和(? k = 2 ?),并使這些整數(shù)的乘積最大化。 返回? 你可以獲得的最大乘積 ?。 示例 1: 示例?2: 提示: 2 = n = 58 算法分析: 定義dp數(shù)組及下標(biāo)含義: dp[i]表述正整數(shù)i拆分成k個(gè)正整數(shù)

    2024年02月04日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包