扑克牌顺子

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        int num=0;
        int i=0;
        int begin;
        if(numbers.size()<5)
            return false;
        sort(numbers.begin(),numbers.end());
        //判断0的个数
        for(;i<5;i++)
        {
            if(numbers[i]==0)
                num++;
            else 
                break;
        }
        begin=numbers[i];
        for(int j=1;i+j<5;)
        {
            if(numbers[i+j]==(begin+1))//这个加加运算符会突破括号的限制,再进行这个运算时,begin会自+1
            {
               j++;
               begin++;
            }
            else
            {
                num--;
                if(num==-1)
                    return false;
                begin++;
            }
        }
        return true;
    }
};

总结:
1.调试了很多次哈,第一点,++的时候,会突破括号的限制,且,如果判断用++,自己记得这个会改变变量的值得,会影响到与if同级的判断,自己注意一下。
大神解法:
1 max - min <5
2 除0外没有重复的数字(牌)
3 数组长度 为5。
满足以上三个条件即为正解。也还行,

全部评论

相关推荐

10-14 12:20
门头沟学院 Java
迷茫的大四🐶:摊牌了,我是25届的,你们也不招我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务