博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer61. 扑克牌中的顺子 P298
阅读量:3950 次
发布时间:2019-05-24

本文共 1080 字,大约阅读时间需要 3 分钟。

剑指offer61. 扑克牌中的顺子 P298

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

方法1. 统计大小王的数量(0的个数),用来填补顺子里缺失的数。

public boolean isStraight(int[] nums) {
if (nums.length != 5) {
return false; } Arrays.sort(nums); int zero = 0, i = 0; while (i < 5 && nums[i] == 0) {
zero++; i++;// i++不能在循环里! } int subIndex = 5 - i - 1, gap = 0; while (i < 5) {
if (i != 4) {
if (nums[i + 1] == nums[i]) {
return false; } gap += nums[i + 1] - nums[i]; } i++; } return gap - zero <= subIndex; }

方法2. 好!!!

public boolean isStraight(int[] nums) {
int joker = 0; Arrays.sort(nums); // 数组排序 for(int i = 0; i < 4; i++) {
if(nums[i] == 0) joker++; // 统计大小王数量 else if(nums[i] == nums[i + 1]) return false;// 若有重复,提前返回 false } return nums[4] - nums[joker] < 5; // 最大牌 - 最小牌 < 5 则可构成顺子 }

转载地址:http://wrzzi.baihongyu.com/

你可能感兴趣的文章
FATE HDU - 2459 ( 二维完全背包 )
查看>>
B. Working out CodeForces - 429B (动态规划)
查看>>
10635 - Prince and Princess UVA-10635 (最长公共子序列的O(nlogn)的解法:LCS转换为LIS)
查看>>
Sizeof和Strlen
查看>>
lower_bound和upper_bound
查看>>
Subsequence POJ - 3061 ( 尺取法 )
查看>>
常见HTTP状态码大全
查看>>
Python很简单?学会魔术方法才算入门!
查看>>
大数据揭秘:低学历成功逆袭概率多少?结果令人震惊!
查看>>
这16个数据可视化案例,惊艳了全球数据行业
查看>>
大数据死亡率报告揭秘:SUV与轿车到底谁更危险?
查看>>
2017年网络流行语TOP20 , 没用过算我输!
查看>>
GitHub最著名的20个Python机器学习项目!
查看>>
看完这13张图,不得不佩服还是外国人会玩人工智能
查看>>
大数据产业日趋成熟 市场规模将达千亿
查看>>
资源 | Github项目:斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现
查看>>
一千个不用 Null 的理由
查看>>
2018年大数据趋势 :人工智能... 数据分析将包含可视化模型...
查看>>
他用python做了个小游戏,然后...
查看>>
用 Python分析胡歌的《猎场》到底值不值得看?
查看>>