当前位置: 首页 > news >正文

剑指Offer系列(java版,详细解析)61.扑克牌中的顺子

题目描述

剑指 Offer 61. 扑克牌中的顺子

难度简单120收藏分享切换为英文接收动态反馈

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

示例 1:

输入: [1,2,3,4,5]
输出: True

示例 2:

输入: [0,0,1,2,5]
输出: True

限制:

数组长度为 5

数组的数取值为 [0, 13] .

测试用例

  • 功能测试(抽出的牌中有一个或者多个大、小王;抽出的牌中没有大、小王;抽出牌有对子)
  • 特殊输入测试(输入空指针)

题目考点

考察应聘者的抽象建模能力。

我这个小伙子抽象能力不行呀!!!

解题思路

  1. 数组排序
  2. 统计数组中0的个数
  3. 统计排序之后的数组中相邻数字之间的空缺总数
  4. 比较0的个数和空缺总数

自己解题

没有好的抽象,只有超级暴力解题。

参考解题

class Solution {
    public boolean isStraight(int[] nums) {
        Set<Integer> repeat = new HashSet<>();
        int max = 0, min = 14;
        for(int num : nums) {
            if(num == 0) continue; // 跳过大小王
            max = Math.max(max, num); // 最大牌
            min = Math.min(min, num); // 最小牌
            if(repeat.contains(num)) return false; // 若有重复,提前返回 false
            repeat.add(num); // 添加此牌至 Set
        }
        return max - min < 5; // 最大牌 - 最小牌 < 5 则可构成顺子
    }
}

相关文章:

  • 剑指Offer系列(java版,详细解析)62.圆圈中最后剩下的数字
  • 剑指Offer系列(java版,详细解析)63.股票的最大利润
  • 剑指Offer系列(java版,详细解析)64.求1+2+...+n
  • 剑指Offer系列(java版,详细解析)65.不用加减乘除做加法
  • 剑指Offer系列(java版,详细解析)66.构建乘积数组
  • 剑指Offer系列(java版,详细解析)67.把字符串转化成整数
  • 剑指Offer系列(java版,详细解析)68.树中两个节点的最低公共祖先
  • Go语言fmt.Sprintf(格式化输出)
  • Go 面试系列:Go interface中nil的比较问题
  • Go 面试系列: new 和 make有什么不同之处呢?
  • Go 面试系列: Goroutine 数量是越多越好吗?设置多少会影响GC调度呢?
  • 什么是读、写扩散?
  • 一文搞定权限设计模型(RBAC,ABAC)超详细图文解析
  • 一文搞定权限管理!授权、鉴权超详细解析
  • Go 中的 JSON如何序列化和反序列化?来看看go的包怎么实现!
  • “大数据应用场景”之隔壁老王(连载四)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 4. 路由到控制器 - Laravel从零开始教程
  • 78. Subsets
  • Android框架之Volley
  • Centos6.8 使用rpm安装mysql5.7
  • Druid 在有赞的实践
  • Java多线程(4):使用线程池执行定时任务
  • Laravel Telescope:优雅的应用调试工具
  • SSH 免密登录
  • unity如何实现一个固定宽度的orthagraphic相机
  • 阿里云Kubernetes容器服务上体验Knative
  • 百度小程序遇到的问题
  • 关于List、List?、ListObject的区别
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 力扣(LeetCode)22
  • 面试总结JavaScript篇
  • 如何胜任知名企业的商业数据分析师?
  • 使用 @font-face
  • 线上 python http server profile 实践
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 《天龙八部3D》Unity技术方案揭秘
  • Java数据解析之JSON
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1)(1.11) SiK Radio v2(一)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (ZT)薛涌:谈贫说富
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转载)利用webkit抓取动态网页和链接
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等