從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。
2~10為數字本身,a為1,j為11,q為12,k為13,而大、小王可以看成任意數字。
這道題演算法思想還是比較簡單的。
記大小王記為0,具體步驟如下:
進行對5張牌進行排序;
找出0的個數;
算出相鄰數字的空缺總數;
如果0的個數大於等於空缺總數,說明連續,反之不連續;
記得判斷相鄰數字是否相等,如果有出現相等,說明不是順子。
public
boolean
iscontinuous
(int
numbers)
arrays.
sort
(numbers)
;int numberof0 =0;
int numberofgap =0;
for(
int i=
0; iint small = numberof0;
int big = numberof0+1;
while
(bignumberofgap += numbers[big++
]-numbers[small++]-
1;}// 大於等於
return numberof0 >= numberofgap;
}
劍指Offer對答如流系列 撲克牌的順子
從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,而大 小王可以看成任意數字。這道題演算法思想還是比較簡單的。記大小王記為0,具體步驟如下 進行對5張牌進行排序 找出0的個數 算出相鄰數字的空缺總數 如果0的個數大於等於空缺...
劍指Offer對答如流系列 醜數
我們把只包含質因子2 3和5的數稱作醜數 ugly number 求按從小到大的順序的第n個醜數。例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。判斷乙個數是不是醜數,最容易想到的方法就是讓這個數不斷除以2,3,5。對於第n個醜數,只要從1開始,依次判斷每個數是不...
劍指Offer對答如流系列 剪繩子
給你一根長度為n繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段的繩子的長度記為k 0 k 1 k m k 0 k 1 k m 可能的最大乘積是多少?例如當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到最大的乘積18。遇到問題,先分析問題,由分析的結果確定所運用的演...