题解 | #扑克牌顺子#

扑克牌顺子

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

  1. 用数组来记录出现的牌的次数;
  2. 记录五张牌中的最大最小值,差值>=5则错误。
  3. 时间复杂度O(n)|空间复杂度O(n)
class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        if(numbers.size()<5) return false;
        int minum=15,maxum=0;
        int mat[14]={0};//数组记录出现的牌的次数
        for(int i=0;i<numbers.size();++i){
            if(numbers[i]==0) continue;//不需要标记0,遇到就跳过
            ++mat[numbers[i]];
            if(mat[numbers[i]]>1) return false;//重复出现牌就返回false
            maxum=max(maxum,numbers[i]);//记录最大
            minum=min(minum,numbers[i]);//记录最小值
        }
        if(maxum-minum>=5) return false;//最大最小值的差值必须小于5,否则为false
        return true;
    }
};
全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务