61.扑克牌中的顺子(简单)

考点:本题考查抽象建模能力

题目描述:

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

思路:

数组排序,统计数组中0的个数,统计排序后的数组中相邻数字之间的空缺总数,如果空缺总数小于等于0的个数,那么这个数组就是连续的。

import java.util.Arrays;
public class Solution {
    public boolean isContinuous(int [] numbers) {
        if(numbers==null||numbers.length<=0)
            return false;
        Arrays.sort(numbers);
        int numberZero = 0;
        int numberGap = 0;
        //统计数组中0的个数
        for(int i=0;i

排序的时间复杂度为O(nlogn),不够快。但是不同级别的时间复杂度只有当n足够大的时候才有意义,这道题目中数组的长度是固定的,只有五张牌,O(n)和O(nlogn)不会有多少区别。

你可能感兴趣的:(61.扑克牌中的顺子(简单))