劍指offer45 撲克牌順子

2022-05-24 18:57:12 字數 1333 閱讀 7584

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。

(1)首先應該對陣列進行排序。

(2)統計陣列中大小王(0)出現的個數。while

(numbers

[index]==

0) ++index

;// 統計0的個數

(3)統計陣列中所有相鄰數之間的間隔。 

(4)同時還需要排除對子的情況,如果出現了對子,那麼肯定不可能是順子(0除外)。

(5)最後比較0的個數和間隔大小,如果0的個數大於等於間隔數,說明可以組成順子。

1

class

solution

1314

int beg = numofzero+1;15

int numofgap = 0;16

while (beg < 5

) 24

25return (numofzero >= numofgap) ? true : false;26

}27 };

view code

1 #include 2 #include 3 #include 4

5using

namespace

std;67

intmain() ;910

if(iscontinuous(data))

13else

1617 system("

pause");

18return0;

19}2021

bool iscontinuous(vectornumbers)

3132

int beg = numofzero+1;33

int numofgap = 0;34

while (beg < 5

) 42

43return (numofzero >= numofgap) ? true : false

;44 }

view code

劍指offer 45 撲克牌順子

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

劍指offer 45撲克牌順子

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

劍指offer 45 撲克牌順子

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