题目描述
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。
解题思路
Java代码实现
import java.util.Arrays;
public class Solution {
public boolean isContinuous(int [] numbers) {
if(numbers.length != 5) return false;
Arrays.sort(numbers);//Java自带的排序函数
int numberof0 = 0;
for(int i = 0; i < 5; i++){
if(numbers[i] == 0)
numberof0++;
}
int small = numberof0;//从非0牌开始
int big = small + 1;
int numOfGap = 0;
while(big < 5){
if(numbers[big] == numbers[small]) //如果出现对子,肯定没有顺子
return false;
numOfGap = numOfGap + numbers[big] - numbers[small] - 1;
small++;
big++;
}
return (numOfGap > numberof0)? false : true;
}
}