在判空去重的情况下,找出数组中的最大的数和最小的数相减,如果相减的结果小于数组的长度则是连续的
扑克牌顺子
http://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4
public class Solution { public boolean isContinuous(int [] numbers) { if(numbers == null || numbers.length < 5){ return false; } int[] num = new int[14]; int max =1; int min = 13; for(int i = 0; i < numbers.length; i++){ num[numbers[i]]++; //有重复的数 if(numbers[i] !=0 && num[numbers[i]]>1){ return false; } //找到最大的数 if(numbers[i] > max){ max = numbers[i]; } //找到最小且不是万能牌的数 if(numbers[i] < min && numbers[i] !=0){ min = numbers[i]; } } //如果数组中最大的数减去最小的数大于等于数组的长度则肯定是不连续的 //例如1,2,3,4,5, 5-1 = 4; if(numbers.length > max -min){ return true; } return false; } }