剑指 Offer 61. 扑克牌中的顺子(简单)
题目:
class Solution {
public:
bool isStraight(vector<int>& nums) {
sort(nums.begin(), nums.end()); //首先要对数组进行排序
int count=0; //count用来记录万能牌0的个数,count相当于用来补牌
for(auto n:nums){
if(n==0) count++;
}
for(int i=count+1;i<5;i++){ //从第二个非零的数开始遍历
if(nums[i]==nums[i-1]) return false; //若当前数等于前一个数,返回false
if(nums[i]-nums[i-1]-1>count) return false; //若当前数与前一个数之间缺失的牌数(nums[i]-nums[i-1]-1)大于count,返回false
count = count - (nums[i]-nums[i-1]-1); //count减去被拿去补充的牌数
}
return true;
}
};