您的位置:首页 > Web前端

【剑指offer】之扑克牌的顺子

2015-12-03 09:21 351 查看
题目:

随机从一副扑克牌中抽出了5张牌,判断是否是顺子,即五张牌是不是连续的。大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。(本文不大、小王看做0)

分析:



java代码实现:

private static boolean isContinuous(int[] numbers) {
if(numbers == null || numbers.length<1) {
return false ;
}

MergeSort.sort(numbers); //升序排序,

int numbersOfzero = 0;
int numbersOfgap = 0;

for(int i=0;i<numbers.length;i++) { //统计鬼牌的数目
if(numbers[i] == 0)
numbersOfzero++;
}

int start = numbersOfzero ;
int next = start + 1;
while(next < numbers.length) {
if(numbers[start] == numbers[next]) //如果有对子,则这副牌不可能是顺子了
return false;

numbersOfgap = numbers[next] - numbers[start] - 1;
start = next ;
next = start + 1;
}

return numbersOfgap < numbersOfzero ? true:false;
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: