首页 > 代码库 > 44、扑克牌中的顺子
44、扑克牌中的顺子
思路:将大小王设为0,5个数排序。
1、统计0个数和间隔数,空缺总数小于等于0个数说明连续。
2、且数组不能有相同的数此为对子。排序只有在n很大时才有意义。普通排序即可。
import java.util.Arrays; public class Solution { public boolean isContinuous(int [] numbers) { //数组不能为空,也不能长度小于5 if (numbers == null || numbers.length < 5) { return false; } //数组排序,n很小考虑时间复杂度没意义 Arrays.sort(numbers); //统计0的个数 int zeroCount = 0; int gapCount = 0; for (int i = 0; i < numbers.length; i++) { if (numbers[i] == 0){ zeroCount++; } } //统计gap个数,并排除数组有重复的数 //第一个不为0的数 int small = zeroCount; while (small <= numbers.length - 2){ if (numbers[small] == numbers[small + 1]){ return false; } gapCount += (numbers[small + 1] - numbers[small] - 1); small++; } //判断gap和zero关系 if (gapCount <= zeroCount){ return true; } else { return false; } } }
测试:输入null、抽出的牌有一个或多个大小王,抽出的牌没有大小王,抽出的牌有对子。
44、扑克牌中的顺子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。