本文主要是介绍【剑指offer】之扑克牌的顺子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
随机从一副扑克牌中抽出了5张牌,判断是否是顺子,即五张牌是不是连续的。大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。(本文不大、小王看做0)
分析:
java代码实现:
private static boolean isContinuous(int[] numbers) {if(numbers == null || numbers.length<1) {return false ;}MergeSort.sort(numbers); //升序排序,int numbersOfzero = 0;int numbersOfgap = 0;for(int i=0;i<numbers.length;i++) { //统计鬼牌的数目if(numbers[i] == 0)numbersOfzero++;}int start = numbersOfzero ;int next = start + 1;while(next < numbers.length) {if(numbers[start] == numbers[next]) //如果有对子,则这副牌不可能是顺子了return false;numbersOfgap = numbers[next] - numbers[start] - 1; start = next ;next = start + 1;}return numbersOfgap < numbersOfzero ? true:false;}
这篇关于【剑指offer】之扑克牌的顺子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!