劍指offer第45題 撲克牌順子

2021-09-16 13:18:18 字數 817 閱讀 8845

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、用map定義乙個data用於統計每個數字出現的次數,如果數字不是0,且次數大於1,則直接返回false

2、用乙個迴圈統計除0外的最大的數字和最小數字,然後計算差值,如果0出現的數字正好填補空缺,則說明可以連成數字。

class solution 

mapdata;

for(int i=0;i<5;i++)

int minimum=14,maximum=-1,count=0;

for(int i=0;i1 && numbers[i]!=0)

if(minimum>numbers[i] && numbers[i]!=0)

if(maximumif(numbers[i]==0)

}if(count==4)

else if((maximum-minimum)<=4)

return false;

}};

劍指offer 第45題 撲克牌順子

思路 先統計王的數量,如果後面乙個數比前面乙個數大於1以上,那麼中間的差值就必須用王來補了。public class t 45 iscontinuous int zero 0 int c 0 統計i和i 1之間的差值,看需要多少個王來補,比如4和7,7 4 1 2,需要2個王來補 arrays.so...

劍指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不高興了,他想了想,...