美文网首页
剑指offer | 扑克牌的顺子

剑指offer | 扑克牌的顺子

作者: icebreakeros | 来源:发表于2019-07-31 19:03 被阅读0次

扑克牌的顺子

从扑克牌中随机抽5张牌,判断是不是顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。

思路:首先把数组排序,再统计数组中0的个数,最后统计排序之后的数组中相邻数字之间的空缺总数。如果空缺的总数小于或等于0的个数,那么这个数组就是连续的;反之则不连续

public class ContinousCards {

    public boolean isContinous(int[] numbers) {
        if (Optional.ofNullable(numbers).isEmpty() || numbers.length <= 0) {
            return false;
        }

        Arrays.sort(numbers);
        int zeros = 0;
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == 0) {
                zeros++;
            }
        }

        int gaps = 0;
        int small = zeros;
        int big = small + 1;
        while (big < numbers.length) {
            if (numbers[small] == numbers[big]) { // 有对子
                return false;
            }
            gaps += numbers[big] - numbers[small] - 1;
            small = big;
            big++;
        }
        return (zeros >= gaps) ? true : false;
    }
}

相关文章

  • 每日一练(33):扑克牌中的顺子

    title: 每日一练(33):扑克牌中的顺子 categories:[剑指offer] tags:[每日一练] ...

  • [剑指offer] 扑克牌顺子

    本文首发于我的个人博客:尾尾部落 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2...

  • 剑指offer | 扑克牌的顺子

    扑克牌的顺子 从扑克牌中随机抽5张牌,判断是不是顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11...

  • 剑指offer【60~68】

    题目链接: 剑指offer 60-68 目录: 60. n 个骰子的点数61. 扑克牌顺子62. 圆圈中最后剩下的...

  • 剑指Offer--扑克牌顺子

    题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)....

  • 【剑指Offer 44】扑克牌的顺子

    题目:从扑克牌中随机抽5张牌,判断是不是一个顺子, 即这5张牌是不是连续的。2~10为数字本身, A为1。 J为1...

  • 剑指Offer笔试题(5)

    剑指Offer笔试题(4) 题目来源:牛客网 题目一 扑克牌顺子 描述: LL今天心情特别好,因为他去买了一副扑...

  • 剑指offer第二版-61.扑克牌中的顺子

    本系列导航:剑指offer(第二版)java实现导航帖 面试题61:扑克牌中的顺子 题目要求:抽取5张牌,判断是不...

  • 剑指offer编程题—扑克牌顺子

    题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)......

  • 剑指 offer 笔记 45 | 扑克牌顺子

    题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)......

网友评论

      本文标题:剑指offer | 扑克牌的顺子

      本文链接:https://www.haomeiwen.com/subject/bqqxdctx.html