扑克牌顺子
题目描述
浓缩题目:从扑克牌中随机抽取5张牌,判断是不是一个顺子,即这5张牌是不是连续的。其中令大小王用0表示,大\小王可以看成任何数字。
思路
用数组记录五张扑克牌,将数组调整为有序的,若0出现的次数>=顺子的差值,即为顺子。
注意:因为for循环中有 if(numbers[i] != numbers[i+1])的存在,因此i的取值范围只能是小于numbers.length-1 !!!
import java.util.*;
public class Solution {
public boolean isContinuous(int [] numbers) {
if(numbers.length == 0 || numbers == null) return false;
int diff = 0;
int Qnum = 0;
Arrays.sort(numbers);
for(int i = 0;i < numbers.length - 1;i++){
if(numbers[i] == 0){
Qnum++;
continue;
}
if(numbers[i] != numbers[i+1]){//因为这一步,所以i的取值范围只能到numbers.length-1!!!
diff += numbers[i+1] - numbers[i] - 1;
}else{
return false;
}
}
if(Qnum >= diff){
return true;
}
return false;
}
}