算法学习之扑克牌中的顺子

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

思路:五个数满足下面几个条件即可(使用TreeSet默认对int实现自动有序排列并且值不能重复)

1、剩余数字+0的个数=5

2、排序后的最大值-最小值<5 // 注意这里是大小王除外的即0除外的元素

3、没有重复数字

import java.util.*;
public class Solution {
    public boolean isContinuous(int [] numbers) {
        if(numbers==null||numbers.length!=5)return false;
        int num = 0;
        TreeSet set = new TreeSet();
        for(int i =0;i

时间复杂度:O(n)

空间复杂度:O(1)

练习地址:https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

你可能感兴趣的:(算法,扑克牌中的顺子,java算法,android算法,剑指offer,java扑克牌中的顺子)