剑指offer(45)扑克牌顺子

import java.util.Arrays;
import java.util.Scanner;

//看拿出来的一把牌是否是顺子,A:1,JQK:11,12,13 大王小王:0,可看作任何数字
//先判断numbers的长度,为0直接返回false
//求0的个数
//求两个相邻数字之间的空位
//如果有对子直接返回false
//如果0的个数大于等于相邻数字之间的空位则返回true
public class NoFourtyfive {
    
    public boolean isContinuous(int[] numbers){
        int length = numbers.length;
        if(length == 0){
            return false;
        }
        int numsOfZero = 0;
        int numsOfDis = 0;
        
        Arrays.sort(numbers);
        
        for(int i = 0;i < length - 1;i++){
            if(numbers[i] == 0){
                numsOfZero++;
                continue;
            }
            if(numbers[i] == numbers[i + 1]){
                return false;
            }
            numsOfDis += numbers[i + 1] - numbers[i] - 1;
        }
        
        if(numsOfZero >= numsOfDis){
            return true;
        }
        return false;
    }
    
    
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String arr = sc.next();
        String[] arr1 = arr.split(",");
        int[] arrTer = new int[arr1.length];
        for(int i = 0;i < arrTer.length;i++){
            arrTer[i] = Integer.parseInt(arr1[i]);
        }
        NoFourtyfive fourtyfive = new NoFourtyfive();
        boolean b = fourtyfive.isContinuous(arrTer);
        System.out.println(b);
    }
}
 

全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务