劍指offer系列(45)撲克牌順子

2021-08-20 14:51:10 字數 1028 閱讀 8651

題目描述

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的運氣如何。為了方便起見,你可以認為大小王是0。

思路分析

理解題意就不難做出這道題了,首先進行排序,統計出陣列中0的個數,然後再統計出個數之間的「間隔」(除0以外),間隔和小於0的個數就滿足條件,比較即可得出答案。

如[0,0,1,3,5],3和1間隔為1,5和3間隔為1,間隔和為2,0的個數為2,滿足條件

**

public boolean iscontinuous(int  numbers) 

int count = 0; //統計陣列中0的個數 即大王小王

int count1 = 0; //統計數之間的間隔

arrays.sort(numbers);

for (int i = 0; i < numbers.length; i++)

if (numbers[i] != 0)

} for (int i = count; i < numbers.length-1; i++)

if (count1 < 0)

if (count1 <= count)

return false;

}

結果

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