提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目描述
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
示例 1:
输入: [1,2,3,4,5]
输出: True
示例 2:
输入: [0,0,1,2,5]
输出: True
限制:
数组长度为 5
数组的数取值为 [0, 13]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题过程
解题思路
主要利用两个限制条件:
1、不能有重复的元素(大王小王除外);
2、最大值和最小值相减一定是 < 5的。
class Solution {
public boolean isStraight(int[] nums) {
boolean isStraight = true;
//max - min < 5就是可以的,否则不行;且不能重复
Arrays.sort(nums);
int max = 0;
int min = 14;
for(int i = 0; i < nums.length; i++){
if(nums[i] == 0){ //0不参与大小查找
continue;
}
if(i + 1 < nums.length && nums[i] == nums[i + 1]){
return false;
}
if(nums[i] > max){
max = nums[i];
}
if(nums[i] < min){
min = nums[i];
}
}
if(max - min < 5){
return true;
}else{
return false;
}
}
}
总结
暂时没有总结,待续。。。