1、题目描述
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。
2~10为数字本身,A为1,J为11,Q为12,K为13,大小王可以看做任意数字。
为了方便,大小王均以0来表示,并且假设这副牌中大小王均有两张。
样例1:
输入:[8,9,10,11,12]
输出:true
样例2
输入:[0,8,9,11,12]
输出:true
2、问题描述:
3、问题关键:
- 排序,
- 是否有对子,最大值最小值是否大于4。
4、C++代码:
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 ++;//去掉0.
for (int i = k; i < nums.size() - 1; i ++)
if (nums[i] == nums[i + 1]) return false;// 如果有对子,直接false;
if (nums.back() - nums[k] > 4) return false;//最大值最小值相差大于4,返回false;
return true;
}
};
网友评论