题解 | #扑克牌顺子#

扑克牌顺子

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

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Solution {
    public boolean IsContinuous(int [] numbers) {
        int zero = 0;
        Set<Integer> set = new HashSet<>();
        for (int number : numbers) {
            // 不能超过 1-13
            if (number < 0 || number > 13) {
                return false;
            }
            // 零的数量不能超过4
            if (number == 0) {
                zero++;
            } else {
                set.add(number);
            }
        }
        // 零的数量不能超过4
        if (zero > 4) {
            return false;
        }
        if(zero == 4){
            return true;
        }
        // 排除重复
        if (zero != numbers.length - set.size()) {
            return false;
        }

        Object[] array = set.toArray();
        if (zero == 0) {
            for (int i = 1; i < array.length; i++) {
                if ((int) array[i] - (int) array[i - 1] != 1) {
                    return false;
                }
            }
        } else if(zero == 1) {
            if ((int) array[set.size() - 1] - (int) array[0] == 4) {
                return true;
            } else {
                return false;
            }
        }else {
            if((int)array[0] < (int) array[set.size() - 1] - 4 ){
                return false;
            }
            for (int i = 1; i < array.length; i++) {
                if ((int) array[i] - (int) array[i - 1] == 1) {
                    return true;
                }
            }
        }
        return true;
    }
}

#java#
全部评论

相关推荐

xdm怎么说&nbsp;要被拷打了&nbsp;担心是KPI
丹田:面就完了,就当日薪四位数的大佬免费给给你面试。
点赞 评论 收藏
分享
想按时下班的我在等o...:我投测试也是这个情况,不知道咋办了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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