题解 | 扑克牌顺子

扑克牌顺子

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @return bool布尔型
     */
    public boolean IsContinuous (int[] numbers) {
        // 每一个0都可以看做任意牌
        // 最多有四个0,也就是有0-4种情况
        HashMap<Integer,Integer> hashmap = new HashMap<>();
        // 设置顺子上下限
        int max = 0, min = 13;
        for(int i = 0; i < numbers.length; i++){
            if(numbers[i] > 0){
                // 顺子不能重复
                if(hashmap.containsKey(numbers[i])){
                    return false;
                }else{
                    // 将新牌加入哈希表
                    hashmap.put(numbers[i], i);
                    // 更新上下界
                    if(numbers[i] >= max){
                        max = numbers[i];
                    }
                    if(numbers[i] <= min){
                        min = numbers[i];
                    }
                }
            }
        }
        // 如果两张牌大于等于5,剩下三张票无论如何也补不齐
        if((max - min) >= 5){
            return false;
        }else{
            return true;
        }

    }
}

全部评论

相关推荐

07-17 12:14
门头沟学院 Java
点赞 评论 收藏
分享
07-16 17:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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