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

每日一題:LeetCode-75. 顏色分類

這篇具有很好參考價值的文章主要介紹了每日一題:LeetCode-75. 顏色分類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

每日一題系列(day 12)

前言:

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

?? ????如果說代碼有靈魂,那么它的靈魂一定是????算法????,因此,想要寫出??優(yōu)美的程序??,核心算法是必不可少的,少年,你渴望力量嗎????,想掌握程序的靈魂嗎???那么就必須踏上這樣一條漫長的道路????,我們要做的,就是斬妖除魔????,打怪升級!????當(dāng)然切記不可??走火入魔??,每日打怪,拾取經(jīng)驗(yàn),終能成圣????!開啟我們今天的斬妖之旅吧!????


題目:

??給定一個包含紅色、白色和藍(lán)色、共 n 個元素的數(shù)組 nums ,原地對它們進(jìn)行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍(lán)色順序排列。
我們使用整數(shù) 0、 1 和 2 分別表示紅色、白色和藍(lán)色。
必須在不使用庫內(nèi)置的 sort 函數(shù)的情況下解決這個問題。

示例:

每日一題:LeetCode-75. 顏色分類,每日一題,算法

提示:

  • n == nums.length
  • 1 <= n <= 300
  • nums[i] 為 0、1 或 2

思路:

??這題要求我們將三種顏色排好序,其實(shí)也就是對0,1,2的劃分而已,如果你看了我前面寫的題目的話,有一題 移動0 與這題很類似,都是類似于快排操作的實(shí)現(xiàn),只不過在這里多了一個區(qū)間而已。
??其實(shí)解決這題我們可以仿照解決移動0的問題,移動0使用雙指針解決,這題有三種數(shù)據(jù)類型,我們可以多加一個指針,三指針來解決。

??1、首先,我們可以將數(shù)據(jù)分為3個區(qū)間,左中右,左邊放0,中間放1,右邊放2,用指針left指向最后一個被遍歷到的0元素,指針right指向最后一個被遍歷到的2元素,指針i用來遍歷數(shù)組(左右區(qū)間劃分ok了,中間的1也就ok了)
每日一題:LeetCode-75. 顏色分類,每日一題,算法
??2、left最開始指向-1,當(dāng)i遍歷到的元素為0時,先++left,在交換他倆的元素,i再自增。right最開始指向最后一個元素的下一個位置,如果i遍歷到的值為2,則先–right再交換他倆元素,這里我們不能將i自增,因?yàn)檫@個時候不確定交換過后的元素是否為0,還需要再判斷。
??3、最后,當(dāng)i指針與right指針相遇了,right往后全是2元素,所以這個時候循環(huán)就結(jié)束了。

代碼實(shí)現(xiàn):

class Solution {
public:
    void sortColors(vector<int>& nums) {
        int n = nums.size();
        int left = -1, right = n, i = 0;
        while(i < right)//不結(jié)束一直循環(huán)
        {
            if(nums[i] == 0) swap(nums[++left], nums[i++]);//由i值判斷當(dāng)前該如何處理,是用左指針還是右指針
            else if(nums[i] == 1) ++i;
            else swap(nums[--right], nums[i]);  
        }
    }
};

每日一題:LeetCode-75. 顏色分類,每日一題,算法


??這題被標(biāo)為了中等,還是有一定難度的,但是如果你很熟悉快排的過程那么這題對你來說就是小case了,因?yàn)檫@題其實(shí)就是以1為基準(zhǔn)值,0甩到左邊,2甩到右邊,很多東西都是融匯貫通的。文章來源地址http://www.zghlxwxcb.cn/news/detail-755932.html

到了這里,關(guān)于每日一題:LeetCode-75. 顏色分類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • LeetCode 熱題 100 JavaScript--75. 顏色分類

    給定一個包含紅色、白色和藍(lán)色、共 n 個元素的數(shù)組 nums ,原地對它們進(jìn)行排序,使得相同顏色的元素相鄰,并按照紅色、白色、藍(lán)色順序排列。 我們使用整數(shù) 0、 1 和 2 分別表示紅色、白色和藍(lán)色。 必須在不使用庫內(nèi)置的 sort 函數(shù)的情況下解決這個問題。 示例 1: 輸入:

    2024年02月12日
    瀏覽(44)
  • 力扣題庫刷題筆記75--顏色分類

    力扣題庫刷題筆記75--顏色分類

    1、題目如下: 2、個人Pyhon代碼實(shí)現(xiàn)如下: ? ? ? ? 第一種思路是取巧,通過計數(shù)0、1、2的個數(shù),去替換nums ? ? ? ? 備注第10行代碼在本地可以跑過,但是力扣跑不過,所以就用了第10-16行代碼進(jìn)行替換 ? ? ? ? 第二種思路是通過冒泡排序去實(shí)現(xiàn): ? ?

    2024年02月15日
    瀏覽(16)
  • 二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    各位CSDN的uu們你們好呀,今天小雅蘭的內(nèi)容仍然是二叉樹和Leetcode每日一題,下面,就讓我們進(jìn)入二叉樹的世界吧?。?! 這個題目需要重新定義一個函數(shù),函數(shù)參數(shù)需要有左子樹和右子樹,題目所給定的函數(shù)無法解決問題。 每個不為空的結(jié)點(diǎn),都可以認(rèn)為是一棵子樹的根?

    2024年02月16日
    瀏覽(30)
  • 二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    各位CSDN的uu們你們好呀,今天繼續(xù)數(shù)據(jù)結(jié)構(gòu)與算法專欄中的二叉樹,下面,讓我們進(jìn)入二叉樹的世界吧?。。?二叉樹(上)——“數(shù)據(jù)結(jié)構(gòu)與算法”_認(rèn)真學(xué)習(xí)的小雅蘭.的博客-CSDN博客 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 求二叉樹的高度 但是這種寫法有很大的問題

    2024年02月17日
    瀏覽(32)
  • leetcode每日一題44

    圖論 dfs/bfs dfs代碼框架 思路:本題要求找到被x圍繞的陸地,所以邊界的陸地O肯定不符合條件。那么我們只要從周邊找到陸地O然后 通過 dfs或者bfs 將周邊靠陸地且相鄰的陸地O都變成A,然后再去重新遍歷地圖的時候,把剩下的O變成X,再把所有的A變成O。 確認(rèn)遞歸函數(shù),參數(shù)

    2024年01月19日
    瀏覽(28)
  • LeetCode每日一題之 復(fù)寫0

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

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

    2024年04月23日
    瀏覽(27)
  • 每日一題(LeetCode)----二分查找(一)

    給定一個排序數(shù)組和一個目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會被按順序插入的位置。 請必須使用時間復(fù)雜度為 O(log n) 的算法。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -104 = nums[i] = 104 nums 為 無重復(fù)元素 的 升序 排列數(shù)

    2024年02月08日
    瀏覽(25)
  • 【LeetCode每日一題】——566.重塑矩陣

    【LeetCode每日一題】——566.重塑矩陣

    矩陣 簡單 566.重塑矩陣 在 MATLAB 中,有一個非常有用的函數(shù) reshape ,它可以將一個 m x n 矩陣重塑為另一個大小不同(r x c)的新矩陣,但保留其原始數(shù)據(jù)。 給你一個由二維數(shù)組 mat 表示的 m x n 矩陣,以及兩個正整數(shù) r 和 c ,分別表示想要的重構(gòu)的矩陣的行數(shù)和列數(shù)。 重構(gòu)后

    2024年02月14日
    瀏覽(20)
  • 【LeetCode每日一題】——85.最大矩形

    【LeetCode每日一題】——85.最大矩形

    矩陣 困難 85.最大矩形 給定一個僅包含 0 和 1 、大小為 rows x cols 的二維二進(jìn)制矩陣,找出只包含 1 的最大矩形,并返回其面積。 示例 1: 輸入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“

    2024年02月13日
    瀏覽(22)
  • Leetcode每日一題——“移除元素”

    Leetcode每日一題——“移除元素”

    各位CSDN的uu們你們好呀,小雅蘭又來啦,今天,小雅蘭的內(nèi)容是移除元素,下面,讓我們進(jìn)入Leetcode的世界吧 ? 說明: 為什么返回數(shù)值是整數(shù),但輸出的答案是數(shù)組呢? 請注意,輸入數(shù)組是以「引用」方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對于調(diào)用者是可見的。 你可以

    2023年04月23日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包