文章目录
题目思路代码
题目
思路
注意是若干副扑克牌,所以所有牌都可能重复。除大小王之外,如果有牌重复,就不是顺子。并且除大小王之外的最大点-最小点<5,才有可能是顺子,如果>=5,就不是顺子。
在不重复的前提下,根据大小王有几个来分类:
5个:是顺子4个:是顺子3个:除大小王之外的最大点-最小点<5则是顺子,否则不是2个:除大小王之外的最大点-最小点<5则是顺子,否则不是1个:除大小王之外的最大点-最小点<5则是顺子,否则不是0个:最大点-最小点<5则是顺子,否则不是
一顿分析下来发现只要满足
除大小王之外的牌不重复除大小王之外的最大点-最小点<5
这两点,那么这把牌就是顺子!
代码
class Solution {
public boolean isStraight(int[] nums) {
int[] table=new int[14];
for(int i=0;i<14;i++) table[i]=0;
int min=14,max=0;
for(int i=0; i table[nums[i]]++; if(nums[i]!=0){ if(table[nums[i]]>1) return false; if(nums[i] if(nums[i]>max) max=nums[i]; } } if(max-min<5)return true; else return false; } }