剑指offer编程试题Java实现--45.扑克牌顺子
个人博客:小景哥哥
45.扑克牌顺子
题目描述
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.Arrays;
public class Solution {//solution onepublic boolean isContinuous1(int [] numbers) {if(numbers.length <= 0)return false;Arrays.sort(numbers);int numberOfZero = 0;int numberOfGap = 0;for(int i = 0; i < numbers.length && numbers[i] == 0; i++){++numberOfZero;}int small = numberOfZero, big = small + 1;while(big < numbers.length){if(numbers[small] == numbers[big])return false;numberOfGap += numbers[big] - numbers[small] - 1;small = big;++big;}return (numberOfGap > numberOfZero)? false : true;}//solution two/**max 记录 最大值min 记录 最小值min ,max 都不记0满足条件 1 max - min <52 除0外没有重复的数字(牌)3 数组长度 为5*/public boolean isContinuous(int [] numbers) {if(numbers.length <= 0)return false;int[]d = new int[14]; d[0] = -5; int len = numbers.length; int max = -1; int min = 14; for(int i = 0; i < len; i++){d[numbers[i]]++; if(numbers[i] == 0){continue; }if(d[numbers[i]] > 1){return false; }if(numbers[i] > max){max = numbers[i]; } if(numbers[i] < min){min = numbers[i]; }}if(max - min < 5){return true; }return false;}
}
剑指offer编程试题Java实现--45.扑克牌顺子相关推荐
- 剑指offer编程试题Java实现--64.滑动窗口的最大值
个人博客:小景哥哥 64.滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在 ...
- 剑指offer编程试题Java实现--60.把二叉树打印成多行
个人博客:小景哥哥 60.把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. import java.util.ArrayList; import java ...
- 剑指offer编程试题Java实现--22.从上往下打印二叉树
个人博客:小景哥哥 22.从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util ...
- 剑指offer编程题Java实现——面试题3二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...
- 剑指offer编程题(JAVA实现)——第35题:数组中的逆序对
github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第35题:数组中的逆序对 题目描述 在数组中的两个数字,如果前 ...
- [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]
[问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...
- Java详解剑指offer面试题50--第一个只出现一次的字符
Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入"abacceff",则输出'b' 要想知道某个字符是不是只出现了一次 ...
- 剑指offer编程题(JAVA实现)——第38题:二叉树的深度
github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第38题:二叉树的深度 题目描述 输入一棵二叉树,求该树的深度 ...
最新文章
- 2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
- python创建树结构、求深度_数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)...
- ubuntu卸载fcitx后引发的问题修复
- 【服务器】宝塔部署eoLinker开源版
- C语言怎样求矩阵上三角乘积,C语言经典算法 - 上三角、下三角、对称矩阵
- 基于HyperLPR的车牌识别(十三)
- 【露】UK大冒险之——变身小小小黄鸡
- rocketmq 消息删除_RocketMq Topic创建和删除
- 计算机管理-磁盘管理中进行扩展卷操作,管理磁盘diskpart命令
- uniapp中canvas将矩形图片绘制成圆形图片以及保存canvas到手机
- C#入门学习-----图书阅读器(WPF 用户控件技术)
- node ncc 打包
- 现代计算机之父—冯·诺依曼
- 领域驱动设计在美团点评业务系统的实践
- Linux man tar cn翻译
- 偶然当程序员却拿下图灵奖,超算榜单之父讲述人生开挂经历
- Windows_COM编程
- 基于Python的地理数据分析之一元线性回归分析-数学原理02.md
- 【矩阵论】4. 矩阵运算——广义逆——加号逆的计算
- 曲曲直直线条图计算机教案,三年级上册信息技术教案-10曲曲直直线条画 金色的秋天 |人教版(2015).doc...
热门文章
- 【C语言】指针第二弹(指针数组、数组指针、数组传参)
- pi节点云服务器最新安装教程,Pi node节点环境安装教程(家庭电脑操作完整版)...
- 为你详解Linux安装GCC方法
- linux个人桌面推扩情况,linux桌面
- vs2017 调试 chromium 频繁崩溃
- linux DNS服务器的部署一
- UVM中打印格式及其控制方法
- 银行视频监控系统解决方案
- 沿着“馅饼”开放创新道路奋勇前进
- JAVA计算机毕业设计开发的校园情感网站部署+源码+数据库+系统+lw文档