java题解
扑克牌顺子
http://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4
12.JZ45扑克牌顺子
时间复杂度O(N)
空间复杂度O(1)
思路: 找出数组中最大值和最小值(0不算)
最大-最小-除0外的数的数字就是可以放0的空位 max-min-1-(numbers.length-2-count);
如果空位<0代表有重复数字 falese
如果空位<0的数量可以填充 true
如果空位大于0的数量 false
适用于不只是5个数 且负数也行
public boolean isContinuous(int [] numbers) {
int count = 0 , min = Integer.MAX_VALUE,max = Integer.MIN_VALUE;
for (int i = 0; i < numbers.length; i++) {
if(numbers[i]==0){
count++;}
if(numbers[i] > max && numbers[i]!=0){
max = numbers[i];
}
if(numbers[i] < min && numbers[i]!=0){
min = numbers[i];
}
}
int emptyNum = Math.abs(max-min)-1-(numbers.length-2-count);
if(emptyNum<0){
return false;
}
if(count-emptyNum>=0){
return true;
}
return false;
}