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

Leetcode 283.移動零

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

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= nums.length <= 104
  • -231?<= nums[i] <= 231?- 1

進階:你能盡量減少完成的操作次數(shù)嗎?

直接采用快排中的思想,采用雙指針的思想,把數(shù)組劃分為三個區(qū)域來處理

Leetcode 283.移動零,C/C++日常練習,leetcode,算法,c++,職場和發(fā)展

Leetcode 283.移動零,C/C++日常練習,leetcode,算法,c++,職場和發(fā)展

當?shù)谝粋€區(qū)域的順序正確,第二個區(qū)域都是0,且數(shù)組內(nèi)以及沒有要處理的元素時,該數(shù)組就符合題目要求處理完畢了。因為必須保證除0外數(shù)組中元素原有順序不能被打亂,所以發(fā)現(xiàn)0后需要將之后非0元素一個一個挨著往前移動。所以需要兩個指針,因為這里是數(shù)組,所以直接用下標就可以解決問題。

將dest=-1;cur=0;讓cur先走,如果等于零就跳過,當找到下一個非0元素時就直接和++dest換位置,如果cur就在dest之前,那++dest再換位置就等于沒換,只有遇到0時cur和dest中間才會隔出來元素,從而交換后直接把0移動到后面,把后面的元素移動到原本0的位置,就實現(xiàn)了題目的要求,代碼很簡單,一個for循環(huán)直接搞定。文章來源地址http://www.zghlxwxcb.cn/news/detail-836140.html

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

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

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

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

相關(guān)文章

  • Leetcode 283.移動零

    Leetcode 283.移動零

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

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

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

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

    2024年02月11日
    瀏覽(14)
  • [LeetCode]-283. 移動零-1089. 復寫零

    [LeetCode]-283. 移動零-1089. 復寫零

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

    2024年02月05日
    瀏覽(20)
  • [雙指針](一) Leetcode 283.移動零和1089.復寫零

    [雙指針](一) Leetcode 283.移動零和1089.復寫零

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

    2024年02月08日
    瀏覽(17)
  • 算法練習--leetcode 數(shù)組

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

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

    2024年02月14日
    瀏覽(21)
  • 算法練習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)
  • 【算法練習】leetcode算法題合集之二叉樹篇

    【算法練習】leetcode算法題合集之二叉樹篇

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

    2024年02月01日
    瀏覽(73)
  • 算法練習 Day38 | LeetCode509,70,746

    先導知識: 1、動態(tài)規(guī)劃常見題型 動態(tài)規(guī)劃基礎(chǔ)問題 背包問題 打家劫舍 股票問題 子序列問題 2、動態(tài)規(guī)劃五部曲 (1)確定dp數(shù)組的定義及下標的含義 (2)確定遞推公式 (3)dp數(shù)組如何初始化 (4)遍歷順序 (5)打印dp數(shù)組 LeetCode509:509. 斐波那契數(shù) 題目描述: 斐波那契

    2024年02月21日
    瀏覽(13)
  • 數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(1)

    數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(1)

    給定一個三角形 triangle ,找出自頂向下的最小路徑和。 每一步只能移動到下一行中相鄰的結(jié)點上。相鄰的結(jié)點 在這里指的是 下標 與 上一層結(jié)點下標 相同或者等于 上一層結(jié)點下標 + 1 的兩個結(jié)點。也就是說,如果正位于當前行的下標 i ,那么下一步可以移動到下一行的下標

    2023年04月24日
    瀏覽(20)
  • 算法練習Day30 (Leetcode/Python-動態(tài)規(guī)劃)

    算法練習Day30 (Leetcode/Python-動態(tài)規(guī)劃)

    62. Unique Paths There is a robot on an? m x n ?grid. The robot is initially located at the? top-left corner ?(i.e.,? grid[0][0] ). The robot tries to move to the? bottom-right corner ?(i.e.,? grid[m - 1][n - 1] ). The robot can only move either down or right at any point in time. Given the two integers? m ?and? n , return? the number of possible

    2024年01月20日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包