牛客網劍指offer第45題 撲克牌順子

2022-05-02 13:42:07 字數 913 閱讀 9040

題目:

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。

思路:

上述題幹具體資訊,0-13,一共14個數字,0可以充當任何數字,然後輸入是五個數字,判斷是不是順子連續的。

那麼如何分析呢? 

很明顯0能夠充當任何元素。0的個數呢最多只有4個;

顯然,除了判斷常規的陣列的一般條件:陣列長度不是5,陣列數值越界(不在0-13之間),則返回false;

明顯,除了0可以重複之外,其他元素重複出現則返回false;

當其他元素不重複出現的時候,非0最大值max減去非0最小值min <=4;

為何呢?因為首先,最多只能重複出現4個0;其次,如果非0最大值max減去非0最小值min >=5;那麼,說明在max和min之間至少有4個元素。而這種條件下,0元素最多只有3個,明顯無法構成順子

一段樸實無法的**如下:

1

class

solution

18for(int i =0;i )

1927}28

2930

}31 };

牛客網 劍指Offer(66題)

1 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。方法一 直接遍歷二維陣列 public class solution find 8,a public st...

牛客網 劍指Offer 索引

二維陣列中的查詢 替換空格 從尾到頭列印鍊錶 重建二叉樹 用兩個棧實現佇列 旋轉陣列的最小數字 斐波那契數列 跳台階 跳台階 矩形覆蓋 二進位制中1的個數 數值的整數次方 調整陣列順序使奇數字於偶數前面 鍊錶中倒數第k個結點 反轉鍊錶 合併兩個排序的鍊錶 樹的子結構 二叉樹的映象 順時針列印矩陣 包...

牛客網 劍指Offer 索引

二維陣列中的查詢 替換空格 從尾到頭列印鍊錶 重建二叉樹 用兩個棧實現佇列 旋轉陣列的最小數字 斐波那契數列 跳台階 跳台階 矩形覆蓋 二進位制中1的個數 數值的整數次方 調整陣列順序使奇數字於偶數前面 鍊錶中倒數第k個結點 反轉鍊錶 合併兩個排序的鍊錶 樹的子結構 二叉樹的映象 順時針列印矩陣 包...