个人博客:小景哥哥

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.扑克牌顺子相关推荐

  1. 剑指offer编程试题Java实现--64.滑动窗口的最大值

    个人博客:小景哥哥 64.滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在 ...

  2. 剑指offer编程试题Java实现--60.把二叉树打印成多行

    个人博客:小景哥哥 60.把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. import java.util.ArrayList; import java ...

  3. 剑指offer编程试题Java实现--22.从上往下打印二叉树

    个人博客:小景哥哥 22.从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util ...

  4. 剑指offer编程题Java实现——面试题3二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...

  5. 剑指offer编程题(JAVA实现)——第35题:数组中的逆序对

    github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第35题:数组中的逆序对 题目描述 在数组中的两个数字,如果前 ...

  6. [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]

    [问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...

  7. 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)

    剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...

  8. Java详解剑指offer面试题50--第一个只出现一次的字符

    Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入"abacceff",则输出'b' 要想知道某个字符是不是只出现了一次 ...

  9. 剑指offer编程题(JAVA实现)——第38题:二叉树的深度

    github https://github.com/JasonZhangCauc/JZOffer 剑指offer编程题(JAVA实现)--第38题:二叉树的深度 题目描述 输入一棵二叉树,求该树的深度 ...

最新文章

  1. Luogu P4782 【模板】2-SAT 问题(2-SAT)
  2. Python virtualenv激活与退出虚拟环境
  3. 博客等级及其特权福利
  4. python字符子串_子字符串和子序列(Python),子串,python
  5. 【高数+AI】中山大学的学霸小哥开源了一个能帮你做高数题的AI
  6. HDOJ2000(ASC||码排序)【sort函数】
  7. Command对象应用--增加问卷调查
  8. 树莓派安装TeamViewer
  9. 光伏发电极其并网控制技术 最大功率点跟踪
  10. 界面控件Telerik UI for WinForm初级教程 - 系统要求 安装步骤
  11. java wsdl文件生成代码_wsdl文件生成java代码
  12. java计算机毕业设计中小型超市管理系统录像补源码+数据库+系统+lw文档+mybatis+运行部署
  13. latex全文设置段间距_latex 标题、段落及行距
  14. futuretask java 并发请求_【Java并发】Runnable、Callable、Future、FutureTask
  15. Leetcode994腐烂的橘子(广度搜索法)
  16. 10% building 2/5 modules 3 active ...lib\index.js!/路径报错
  17. 加密解密--换行符作祟
  18. 信息学奥赛C++编程:求出e的值
  19. TCP选项之SACK选项概述
  20. Linux C编程下没有 itoa()函数的问题

热门文章

  1. BELLHOP 手册和用户指南(中文版)
  2. 全网最详细的2-3树图解
  3. 充电五分钟即可充满手机 石墨烯电池会是未来吗?
  4. Python-matplotlib实现多条曲线画在一张图上
  5. python线上教育培训
  6. node.js毕业设计安卓养老管理APP(程序+APP+LW)
  7. 浙江大学-多元合金化同步提高3D打印商业纯钛强度和延展性
  8. 第十三章 指导学习:人机猜拳
  9. 1001~1005练习题代码
  10. 路由跟踪工具:traceroute