扑克牌顺子
扑克牌顺子
https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&&tqId=11198&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
大小王的作用就是欢乐斗地主中的癞子身份,所以我们先统计出癞子的个数。
我们可以这么做,把问题换成将非癞子牌组成顺子需要多少张癞子,看癞子牌的数量够不够
然后将数组进行排序,接着当非癞子的那些牌能组成顺子的时候,我们去看癞子的数量是否小于0,小于0则证明癞子数不够组不成顺子,大于等于则能够组成。
public boolean IsContinuous(int [] numbers) { if(numbers.length < 5) return false; Arrays.sort(numbers); int cnt = 0; // 0 0 2 3 4 6 8 for(int i = 0; i < numbers.length; i++){ if(numbers[i] != 0) break; cnt++; } for(int i = cnt; i < numbers.length-1; i++){ if(numbers[i+1] == numbers[i]) return false; cnt -= numbers[i+1]-numbers[i]-1; } return cnt>=0; }
剑指offer 文章被收录于专栏
为刷过的每一道题都书写一篇题解,便于重复练习~