栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 剑指offer之[数据结构 简单]JZ61 扑克牌顺子

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 剑指offer之[数据结构 简单]JZ61 扑克牌顺子

题目的链接在这里:https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

目录
  • 题目大意
  • 一、示意图
  • 二、解题思路
    • 暴力


题目大意 现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。 有如下规则: 1. A为1,J为11,Q为12,K为13,A不能视为14 2. 大、小王为 0,0可以看作任意牌 3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。 4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]

要求:空间复杂度 O(1)O(1),时间复杂度 O(nlogn)O(nlogn),本题也有时间复杂度 O(n)O(n) 的解法


一、示意图

二、解题思路
暴力
暴力

代码如下:

import java.util.*;
public class Solution {
  public boolean IsContinuous(int [] numbers) {
                //判断能不能成顺 0可以代替任何一张牌
                //首先进行排序
                Arrays.sort(numbers);
                //然后是找存在几个0 然后记录下来 然后把不是0的存入到数据中
                //使用Hashset 因为他不存放重复值
                HashSet hashSet=new HashSet<>();
                //然后记录最大值和最小值 计算其中的差值
                int count=0;
                int min=10000;
                int max=0;
                for(int i=0;i<5;i++){
                        if(numbers[i]==0){
                                count++;
                        }
                        else{
                             if(numbers[i]>max)
                                     max=numbers[i];
                             if(numbers[i] 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340166.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号