撲克牌順子

2021-08-31 18:12:41 字數 1184 閱讀 1725

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王(一副牌原本是54張_)…他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!「紅心a,黑桃3,小王,大王,方片5」,「oh my god!」不是順子…ll不高興了,他想了想,決定大\小 王可以看成任何數字,並且a看作1,j為11,q為12,k為13。上面的5張牌就可以變成「1,2,3,4,5」(大小王分別看作2和4),「so lucky!」。ll決定去買體育彩票啦。 現在,要求你使用這幅牌模擬上面的過程,然後告訴我們ll的運氣如何, 如果牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認為大小王是0。

思路:大王小王相當於癩子,可以百搭,所以需要知道癩子的數量

想法一,根據癩子數量分類討論。**如下

class solution 

if(i==4) return true;//4個癩子,必定能組成順子

else if(i==3)//3個癩子,剩下的兩張牌可以是相鄰,或者為順子的最大值和最小值,相差在1~4之間

else if(i==2)//2個癩子,剩下的3張牌中最大值和最小值之差在2~4之間,2個癩子可以填充在3張牌之外,也可以填充在3張牌之間,還有一點要注意的3張牌中不能有重複的

else if(i==1)//1個癩子,剩下的4張牌中最大值和最小值之差在3~4之間,不能有重複的牌

else //0個癩子,max-min==4,且不能有重複的牌

}};

想法二,通過上述**,可以發現,沒有癩子的情況,5張牌能組成癩子的充分必要條件:max-min==4&&不能有重複值,考慮下有癩子的情況,對已有的max和min並沒有影響,對重複值也沒有影響,影響的是max-min的值,0個癩子,值為4,1個癩子,值為3或4,2個癩子,值為2,3,4,,3個癩子,值為1,2,3,4, 4個癩子必定可以組成順子,所以癩子的數量不一定需要知道,上面的**中,是經過排序的,經過上面的論述,發現其實不需要排序,只要記錄癩子的數量,max ,min這3個值,max-min的值不能大於等於5。根據這個思路,**如下:

class solution 

return true;

}};

經過上面的**,發現癩子的數量不需要知道,只要滿足這二個條件即可

不能有重複值

在滿足條件一的情況下,最大值減去最小值不能超過5

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子.ll不高興了,他想了想,決定大 小...

撲克牌順子

題目描述 ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,...

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,決定大 小...