题解 | #扑克牌顺子#

扑克牌顺子

http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

扑克牌顺子思路:
首先对数组进行排序,找到其第一个不为0的下标i,判断如果此下标大于等于数组尾下标,说明数组一定可以成为顺子;
其次,计算最大值和不为0的最小值中间需要的数个数和当前已经有的个数的差值,如果这个数是小于等于i的,那么0的个数足够将数组变为顺子,否则不行。
即(numbers[numbers.size()-1]-numbers[i]-1)-(numbers.size()-1-i-1)<=i

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        //auto f=find(numbers.begin(),numbers.end(),
        sort(numbers.begin(),numbers.end());
        int i=0;
        while(numbers[i]==0)
            i++;
        if(i>=numbers.size()-1)
            return true;
        if((numbers[numbers.size()-1]-numbers[i]-1)-(numbers.size()-1-i-1)<=i)
            return true;
        else 
            return false;
    }
};
全部评论

相关推荐

冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务