大小王的作用就是欢乐斗地主中的癞子身份,所以我们先统计出癞子的个数。
我们可以这么做,把问题换成将非癞子牌组成顺子需要多少张癞子,看癞子牌的数量够不够
然后将数组进行排序,接着当非癞子的那些牌能组成顺子的时候,我们去看癞子的数量是否小于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; }