题解 | #扑克牌顺子#

扑克牌顺子

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;
    }
};
全部评论

相关推荐

2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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