问题描述
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
思路
有重复值为false,最小值非零与最大值的差小于5便是true,遍历数组判断有没有重复值,计算最大值最小值。
import java.util.Arrays;
class Solution {
public boolean isStraight(int[] nums) {
int max = -1, min = 15;
Arrays.sort(nums);
for(int i = 0; i < nums.length; i++){
if(nums[i] == 0){
continue;
}
if(i > 0 && nums[i] == nums[i-1]){
return false;
}
max = Math.max(max,nums[i]);
min = Math.min(min,nums[i]);
}
if(max-min < 5){
return true;
}
return false;
}
}