题解 | #扑克牌顺子#

扑克牌顺子

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

相关推荐

2024-12-30 22:31
吉首大学 Web前端
工字钢写代码:改成吉林就OK了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务