关于java:JZ045扑克牌顺子

8次阅读

共计 1370 个字符,预计需要花费 4 分钟才能阅读完成。

扑克牌顺子

题目形容

LL 明天情绪特地好, 因为他去买了一副扑克牌, 发现外面竟然有 2 个大王,2 个小王 (一副牌本来是 54 张 ^_^)… 他随机从中抽出了 5 张牌, 想测测本人的手气, 看看能不能抽到顺子, 如果抽到的话, 他决定去买体育彩票, 嘿嘿!!“红心 A, 黑桃 3, 小王, 大王, 方片 5”,“Oh My God!”不是顺子 …..LL 不快乐了, 他想了想,

  • 决定大 \ 小 王能够看成任何数字, 并且 A 看作 1,J 为 11,Q 为 12,K 为 13。下面的 5 张牌就能够变成“1,2,3,4,5”(大小王别离看作 2 和 4),“So Lucky!”。
  • LL 决定去买体育彩票啦。当初, 要求你应用这幅牌模仿下面的过程, 而后通知咱们 LL 的运气如何,如果牌能组成顺子就输入 true,否则就输入 false。
  • 为了不便起见, 你能够认为大小王是 0。

题目链接 : 扑克牌顺子

代码

import java.util.Arrays;

/**
 * 题目:扑克牌顺子
 * 题目形容
 * LL 明天情绪特地好, 因为他去买了一副扑克牌, 发现外面竟然有 2 个大王,2 个小王 (一副牌本来是 54 张 ^_^)... 他随机从中抽出了 5 张牌, 想测测本人的手气,
 * 看看能不能抽到顺子, 如果抽到的话, 他决定去买体育彩票, 嘿嘿!!“红心 A, 黑桃 3, 小王, 大王, 方片 5”,“Oh My God!”不是顺子.....LL 不快乐了, 他想了想,
 * 决定大 \ 小 王能够看成任何数字, 并且 A 看作 1,J 为 11,Q 为 12,K 为 13。下面的 5 张牌就能够变成“1,2,3,4,5”(大小王别离看作 2 和 4),“So Lucky!”。* LL 决定去买体育彩票啦。当初, 要求你应用这幅牌模仿下面的过程, 而后通知咱们 LL 的运气如何,如果牌能组成顺子就输入 true,否则就输入 false。* 为了不便起见, 你能够认为大小王是 0。* 题目链接:* https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&&tqId=11198&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz45 {public static void main(String[] args) {Jz45 jz45 = new Jz45();
        int[] numbers = new int[]{3, 4, 5, 1, 6};
        System.out.println(jz45.isContinuous(numbers));
    }

    public boolean isContinuous(int[] numbers) {if (numbers.length < 5) {return false;}
        Arrays.sort(numbers);

        // 统计癞子数量
        int cnt = 0;
        for (int num : numbers) {if (num == 0) {cnt++;}
        }

        // 应用癞子去补全不间断的顺子
        for (int i = cnt; i < numbers.length - 1; i++) {if (numbers[i + 1] == numbers[i]) {return false;}
            cnt -= numbers[i + 1] - numbers[i] - 1;
        }
        return cnt >= 0;
    }
}

【每日寄语】世上的鲜花肯定会盛开,美妙的事物也肯定会接踵而来。

正文完
 0