从扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这 55 张牌是不是连续的。
2∼10 为数字本身,A为 1,J 为 11,QQ 为 12,KK 为 13,大小王可以看做任意数字。
为了方便,大小王均以 0 来表示,并且假设这副牌中大小王均有两张。
样例1
输入:[8,9,10,11,12]
输出:true
样例2
输入:[0,8,9,11,12]
输出:true
解题思路:
- 先排序
- 排除0
- 判断是否有连续的数
- 除0之外的第一个数与最后一个数的差小于等于4
class Solution {
public:
bool isContinuous( vector<int> nums ) {
if(nums.empty()) return false;
sort(nums.begin(),nums.end());
int k=0;
while(!nums[k]) k++;
for(int i=k+1;i<nums.size();i++)
if(nums[i]==nums[i-1])
return false;
return nums.back()-nums[k]<=4;
}
};