牛客:剑指offer:扑克牌顺子 (Java)
来源:互联网 发布:mysql 官网下载旧版本 编辑:程序博客网 时间:2024/06/05 18:54
题目描述:
解析:
随机抽的5张牌可以看成5个数字组成的数组,大、小王是特殊的数字,不妨定义为0.接下来只要判断5个数字是不是连续的。最直观的方法是排序,然后用0去补满数组中的空缺。如果排序后的数组不是连续的,即相邻的两个数字都相隔若干个数字,但只要我们有足够的0可以补满这两个数字的空缺,这个数组实际上还是连续的。除此之外,还要注意非0数字重复出现,则该数组不是连续的。
代码:先对数组排序,然后统计0的个数,顺便统计不连续的数字之间的差值,最后如果差值小于等于0的个数则是连续的,否则就不是连续的。
public class Solution { public boolean isContinuous(int [] numbers) {if(numbers == null || numbers.length != 5) return false; sort(numbers); int zeroNum = 0; int diff = 0; for(int i = 0; i < 4; i++){ if(numbers[i] == 0) zeroNum++; else{ if(numbers[i] == numbers[i+1]){ return false; } diff += (numbers[i+1] - numbers[i] - 1); } } if(zeroNum >= diff) return true; return false; } public void sort(int[] arr){ int len = arr.length; for(int i = 0; i < len - 1; i++){ for(int j = 0; j < len - 1 - i; j++){ if(arr[j] > arr[j+1]){ int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } }}
0 0
- 牛客:剑指offer:扑克牌顺子 (Java)
- 扑克牌顺子(剑指offer)
- 剑指offer--扑克牌顺子
- 《剑指offer》扑克牌顺子
- 剑指offer:扑克牌顺子
- 剑指offer:扑克牌顺子
- 剑指offer:扑克牌顺子
- [剑指offer]扑克牌顺子
- 剑指offer|扑克牌顺子
- 剑指offer|扑克牌顺子
- 《剑指offer》-扑克牌顺子
- 剑指Offer: 扑克牌顺子
- 剑指offer-扑克牌顺子
- 剑指offer--扑克牌顺子
- 剑指offer 扑克牌顺子
- 剑指offer-扑克牌顺子
- 剑指offer 扑克牌顺子
- 剑指offer:扑克牌顺子
- poj 1029
- Winform-my输入框
- 编程语言之前端介绍
- spring xml文件
- docker for windows pull镜像文件的安装位置改变方法
- 牛客:剑指offer:扑克牌顺子 (Java)
- 基于Redis实现分布式锁
- android利用ZXing扫描二维码
- 0——keras学习笔记
- python2 爬取新浪帐号所有微博
- 51822服务发现(db_discovery)
- 瀑布流布局javascript or css3实现
- 获得页面地址栏传递来的id
- 1——初识keras