扑克牌顺子

题目形容

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;    }}
【每日寄语】 世上的鲜花肯定会盛开,美妙的事物也肯定会接踵而来。