• 【Offer】[61] 【扑克牌中的顺子】


    题目描述

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

    牛客网刷题地址

    思路分析

      将问题转化为 判断5个数字是不是连续的,要注意其中大小王用0代替,最直观的方法是把数组排序。由于0(大小王)可以当成任意数字,我们可以用0去补满数组中的空缺。如果排序之后的数组不是连续的,即相邻的两个数字相隔若干个数字,那么只要我们有足够的0可以补满这两个数字的空缺,这个数组实际上还是连续的。举个例子,数组排序之后为{0,1,3,4,5},在1和3之间空缺了一个2,刚好我们有一个0,也就是我们可以把它当成2去填补这个空缺。

    测试用例

    1. 功能测试:抽出的牌中有一个或者多个大、小王;抽出的牌中没有大、小王:抽出的牌中有对子。
    2. 特殊输入测试:输入nullptr指针。

    Java代码

    public class Offer061 {
        public static void main(String[] args) {
            test1();
            test2();
            test3();
    
        }
    
        public static boolean isContinuous(int[] numbers) {
            return Solution1(numbers);
        }
    
        private static boolean Solution1(int[] numbers) {
            if (numbers == null || numbers.length <= 0)
                return false;
            Arrays.sort(numbers);
            int numberOf0 = 0;
            int numberOfGap = 0;
            for (int i = 0; i < numbers.length; i++) {
                if (numbers[i] == 0)
                    numberOf0++;
            }
            int small = numberOf0;
            int big = numberOf0 + 1;
            while (big < numbers.length) {
                if (numbers[small] == numbers[big])
                    return false;
                numberOfGap += numbers[big++] - numbers[small++] - 1;
            }
            if (numberOf0 >= numberOfGap) 
                return true;
            return false;
        }
    
        private static void test1() {
    
        }
    
        private static void test2() {
    
        }
    
        private static void test3() {
    
        }
    
    }
    

    代码链接

    剑指Offer代码-Java

  • 相关阅读:
    [SQL Basics] Indexes
    [DS Basics] Data structures
    [Algorithm Basics] Search
    [Algorithm Basics] Sorting, LinkedList
    [Java Basics] multi-threading
    [Java Basics] Reflection
    [Java Basics] Collection
    SSH basics
    纯css实现三角形
    2015年百度实习生前端笔试题上海卷a
  • 原文地址:https://www.cnblogs.com/haoworld/p/offer61-pu-ke-pai-zhong-de-shun-zi.html
Copyright © 2020-2023  润新知