扑克牌顺子

题目描述

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.*;
public class Solution {
    public boolean isContinuous(int [] numbers) {
        //如果不是五张牌,直接false。
        if(numbers.length!=5){
            return false;
            
        }
        //判断有没有对子,有对子返回false,对子不包括大小王
        for(int i=0;i<numbers.length;i++){
            int count=0;
            for(int n=i;n<numbers.length;n++){
                if(numbers[i]!=0&&numbers[i]==numbers[n]){
                    count++;
                }
            }
            if(count>1){
                return false;
            }
        }
        
        ArrayList <Integer> list=new ArrayList<>();
        //把不为大王的数字加到list中
        for(int i=0;i<numbers.length;i++){
            if(numbers[i]!=0){
                list.add(numbers[i]);
            }
        }
        //变成递增数组
        Collections.sort(list);
        //count为需要的大小王数量
        int count=0;
            //567 不需要大小王  568 很明显中间缺一张,至少需要一张大小王
             for(int i=list.size()-1;i>0;i--){
            count+=list.get(i)-list.get(i-1)-1;
        }
        
       //大小王的数量就是原来数组的大小减去list的大小,list中为非大王牌
        int joker=numbers.length-list.size();
        //如果大小王数量比需要的相同或者多,就返回true,否则返回false
        if(joker>=count){
            return true;
        }else{
            return false;
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....
    Max_7阅读 530评论 0 0
  • 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....
    zhouwaiqiang阅读 703评论 0 1
  • 题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)......
    ProudLin阅读 606评论 0 0
  • 《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:字符串 题目描述: LL今天心情特别好,因为他去买了...
    ElricTang阅读 290评论 0 0
  • 题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)....
    大数据Zone阅读 371评论 0 1

友情链接更多精彩内容