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

劍指 Offer ! 61. 撲克牌中的順子

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

參考資料:力扣K神的講解

劍指 Offer 61. 撲克牌中的順子
簡(jiǎn)單
351
相關(guān)企業(yè)
從若干副撲克牌中隨機(jī)抽 5 張牌,判斷是不是一個(gè)順子,即這5張牌是不是連續(xù)的。2~10為數(shù)字本身,A為1,J為11,Q為12,K為13,而大、小王為 0 ,可以看成任意數(shù)字。A 不能視為 14。

示例 1:

輸入: [1,2,3,4,5]
輸出: True

示例 2:

輸入: [0,0,1,2,5]
輸出: True

限制:

數(shù)組長(zhǎng)度為 5

數(shù)組的數(shù)取值為 [0, 13] .

思路:
注意到 ‘0’(即大王、小王)的出現(xiàn)次數(shù)只有三種情況:

  1. ‘0’不出現(xiàn)
    此時(shí),可行數(shù)組(順子)的最大值與最小值之差 為 4
  2. ‘0‘出現(xiàn)一次
    此時(shí),可行數(shù)組(順子)的最大值與最小值之差 <= 4
  3. ’0‘出現(xiàn)兩次
    此時(shí),可行數(shù)組(順子)的最大值與最小值之差 <= 4
    所以,順子應(yīng)該滿足“除了0之外,最大值與最小值之差 < 5”這個(gè)數(shù)學(xué)規(guī)律。
    此外,常識(shí)告訴我們:順子不該有重復(fù)值。
    綜上,
    檢查 數(shù)組是否可行(順子)等價(jià)于
    檢查 “除了0之外,最大值與最小值之差 < 5” 和 ”無重復(fù)值“ 這兩個(gè)條件是否同時(shí)滿足。

解法一:集合+找最大值和最小值

使用集合檢查數(shù)組中是否有重復(fù)值;

  public boolean isStraight(int[] nums) {
        Set<Integer> repeat = new HashSet<>();
       
        int min=14;
        int max=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]==0){                
                continue;
            }
            min = Math.min(nums[i],min);
            max=Math.max(nums[i],max);

            if(repeat.contains(nums[i])){
                return false;
            }
            repeat.add(nums[i]);

        }
        return max-min<5;
    }

解法二:排序+記錄0的個(gè)數(shù)

 public boolean isStraight2(int[] nums) {
      
        Arrays.sort(nums);
        int count0=0;
        for(int i=0;i<nums.length-1;i++){
            if(nums[i]==0) {
                count0++;
                continue;
            }
            if(nums[i]==nums[i+1]) return false;// Repeat!!
    
        }
        // 遍歷完成后,count0 就是 數(shù)組最小值所在位置
        return nums[4]-nums[count0]<5;
    }

解法三:排序+記錄0的個(gè)數(shù)+記錄空缺數(shù)字的個(gè)數(shù)(自己寫的つ﹏?)

我沒有觀察出來那個(gè)數(shù)學(xué)規(guī)律……
這個(gè)解法的思路很樸素。
首先排序,然后遍歷數(shù)組,數(shù)一下有多少”0“(作為救命稻草),有多少”缺失值“(作為坑);
遍歷結(jié)束之后,看看 這些救命稻草 夠不夠 填補(bǔ)這些坑。文章來源地址http://www.zghlxwxcb.cn/news/detail-647206.html

 public boolean isStraight1(int[] nums) {
        Arrays.sort(nums);
        int count0=0;// count 0
        int cnt=0;// count all the missing values
        for(int i=0;i<5-1;i++){
            if(nums[i]==0){
                 count0++;
            }else{
                if(nums[i]==nums[i+1]-1){
                    continue;
                }
                if(nums[i]==nums[i+1]) return false;// repeat! 
    
                cnt+=nums[i+1]-nums[i]-1;
                // say, [2,3],nums[i+1]-nums[i]-1=3-2-1=0, means no missing value bwt 2 and 3
                // say, [4,6], nums[i+1]-nums[i]=6-4-1=1, means there exists one missing value bwt 4 and 6
            }

        }
        return count0>=cnt;// check if all available 0 could satisfy the demand of all missing values 

    }

到了這里,關(guān)于劍指 Offer ! 61. 撲克牌中的順子的文章就介紹完了。如果您還想了解更多內(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)文章

  • Java-撲克牌的創(chuàng)建以及發(fā)放

    大家好,我是曉星航。今天為大家?guī)淼氖?Java-撲克牌的創(chuàng)建以及發(fā)放的講解!?? 這為后續(xù)撲克牌的花色以及數(shù)字大小創(chuàng)建了類。 這里我們寫好了我們撲克牌的基本菜單邏輯,即買牌(52張),再洗牌(打亂牌),最后將所有牌分發(fā)給玩游戲的三個(gè)人(每人五張)。 這里我們定義了

    2024年02月01日
    瀏覽(24)
  • 如何用Java實(shí)現(xiàn)撲克牌(附源碼)

    如何用Java實(shí)現(xiàn)撲克牌(附源碼)

    目錄 一.撲克牌的數(shù)據(jù)結(jié)構(gòu)? 二.買牌(撲克牌的初始化) 三.洗牌 四.發(fā)牌 五.完整代碼 Card.java CardList.java 六.測(cè)試 輸出結(jié)果? 首先,撲克牌是一幅一幅的,除去大小王以外一共有 52 張,我們可以考慮用數(shù)組來存儲(chǔ),數(shù)組的每一個(gè)元素都是一張牌,這是牌庫的牌;除了要考慮牌庫

    2024年02月04日
    瀏覽(23)
  • 數(shù)據(jù)庫編程大賽:一條SQL計(jì)算撲克牌24點(diǎn)

    數(shù)據(jù)庫編程大賽:一條SQL計(jì)算撲克牌24點(diǎn)

    你是否在尋找一個(gè)平臺(tái),能讓你展示你的SQL技能,與同行們一較高下?你是否渴望在實(shí)戰(zhàn)中提升你的SQL水平,開闊你的技術(shù)視野?如果你對(duì)這些都感興趣,那么本次由NineData主辦的《數(shù)據(jù)庫編程大賽》,將是你的最佳選擇! 本次數(shù)據(jù)庫編程大賽的獎(jiǎng)項(xiàng)安排:一等獎(jiǎng)(1人)、二

    2024年02月03日
    瀏覽(23)
  • 張澤鵬:用PostgreSQL征服24點(diǎn)撲克牌算法的數(shù)據(jù)庫高手

    張澤鵬:用PostgreSQL征服24點(diǎn)撲克牌算法的數(shù)據(jù)庫高手

    參賽選手 :張澤鵬 個(gè)人簡(jiǎn)介 :杭州隱函科技有限公司聯(lián)創(chuàng),技術(shù)負(fù)責(zé)人 參賽數(shù)據(jù)庫 :PostgreSQL 性能評(píng)測(cè) :百萬級(jí)數(shù)據(jù)代碼性能評(píng)測(cè) 2.46秒 綜合得分 :82.2 以下是張澤鵬選手的代碼說明思路簡(jiǎn)介: 本算法用了取巧的方法:提前計(jì)算好4個(gè)1~10數(shù)值求24的結(jié)果,執(zhí)行查詢時(shí),直

    2024年02月02日
    瀏覽(24)
  • python123輸出N以內(nèi)的所有素?cái)?shù)&哥德巴赫猜想&撲克牌游戲

    描述 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 編程找出N(即小

    2023年04月18日
    瀏覽(34)
  • 【C#】使用代碼實(shí)現(xiàn)龍年春晚撲克牌魔術(shù)(守歲共此時(shí)),代碼實(shí)現(xiàn)篇

    【C#】使用代碼實(shí)現(xiàn)龍年春晚撲克牌魔術(shù)(守歲共此時(shí)),代碼實(shí)現(xiàn)篇

    歡迎來到《小5講堂》 大家好,我是全棧小5。 這是《C#》系列文章,每篇文章將以博主理解的角度展開講解, 特別是針對(duì)知識(shí)點(diǎn)的概念進(jìn)行敘說,大部分文章將會(huì)對(duì)這些概念進(jìn)行實(shí)際例子驗(yàn)證,以此達(dá)到加深對(duì)知識(shí)點(diǎn)的理解和掌握。 溫馨提示:博主能力有限,理解水平有限

    2024年02月21日
    瀏覽(21)
  • 小啊嗚產(chǎn)品讀書筆記001:《邱岳的產(chǎn)品手記-16》第30講產(chǎn)品案例分析:Primer的撲克牌交互 & 第31講 產(chǎn)品分析的套路(下):如何出解決方案?

    小啊嗚產(chǎn)品讀書筆記001:《邱岳的產(chǎn)品手記-16》第30講產(chǎn)品案例分析:Primer的撲克牌交互 & 第31講 產(chǎn)品分析的套路(下):如何出解決方案?

    叮嘟!這里是小啊嗚的產(chǎn)品進(jìn)階讀書筆記整理。好記性不如爛筆頭,今天也是努力進(jìn)步的一天。一起加油進(jìn)階吧! Google 出品的 Primer,讓你 5 分鐘學(xué)市場(chǎng)營(yíng)銷 (1)這種交互方式看起來很像在玩兒撲克牌,所以我們就姑且管它叫 撲克牌交互 ,這其實(shí)也是 卡片設(shè)計(jì) 的一種。

    2024年02月07日
    瀏覽(21)
  • 【劍指offer】數(shù)據(jù)結(jié)構(gòu)——數(shù)組

    【劍指offer】數(shù)據(jù)結(jié)構(gòu)——數(shù)組

    【劍指offer】03.數(shù)組中重復(fù)的數(shù)字 //03. 數(shù)組中重復(fù)的數(shù)字 // 找出數(shù)組中重復(fù)的數(shù)字。 // 力扣 // 在一個(gè)長(zhǎng)度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0~n-1 的范圍內(nèi)。 // 數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每 // 個(gè)數(shù)字重復(fù)了幾次。請(qǐng)找出數(shù)組中任意一

    2024年02月08日
    瀏覽(13)
  • 劍指 Offer 12 矩陣中的路徑

    劍指 Offer 12 矩陣中的路徑

    題目: 給定一個(gè) m x n 二維字符網(wǎng)格 board 和一個(gè)字符串單詞 word 。如果 word 存在于網(wǎng)格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個(gè)單元格內(nèi)的字母不允許被重

    2024年02月09日
    瀏覽(22)
  • 劍指offer -- 二維數(shù)組中的查找

    劍指offer -- 二維數(shù)組中的查找

    二維數(shù)組中的查找_??皖}霸_??途W(wǎng) (nowcoder.com) 暴力查找法: 是一種簡(jiǎn)單直接的解決方法,可以用于在二維數(shù)組中查找目標(biāo)值。該方法的思路是遍歷數(shù)組的每個(gè)元素,逐個(gè)與目標(biāo)值進(jìn)行比較。 具體步驟如下: 從數(shù)組的第一行第一列開始,逐行逐列地遍歷數(shù)組的每個(gè)元素。 對(duì)

    2024年02月06日
    瀏覽(64)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包