0
点赞
收藏
分享

微信扫一扫

Leetcode刷题笔记(c++)_剑指 Offer 61. 扑克牌中的顺子

一脸伟人痣 2022-05-04 阅读 47

排序+遍历

class Solution {
public:
    bool isStraight(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int zero_num=0;
        for(int n:nums){
            if(!n)zero_num++;
            else break;
        }
        if(nums[4]-nums[zero_num]>5)return 0;
        for(int i=zero_num+1;i<5;i++){
            if(nums[i]-nums[i-1]==1){
            }else if(nums[i]-nums[i-1]==2&&zero_num>0){
                zero_num--;
            }else if(nums[i]-nums[i-1]==3&&zero_num>1){
                zero_num=zero_num-2;
            }else{
                cout<<i<<" "<<nums[i]-nums[i-1]<<" "<<zero_num<<endl;
                return 0;
            }
        }
        return 1;
    }
};

在这里插入图片描述

举报

相关推荐

0 条评论