题目:输入5个数,判断是否连续,0可以替代任何数。
思路:
代码:
public boolean isContinuous(int[] numbers) {
if (numbers == null || numbers.length != 5) {
return false;
}
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i : numbers) {
list.add(i);
}
Collections.sort(list);
int numOf0 = 0;
int sumOfNull = 0;
// 统计0的个数
for (Integer i : list) {
if (i == 0) {
numOf0++;
}
}
int left = numOf0;
int right = left + 1;
// 统计间隔的个数
while (right < 5) {
int tmp = list.get(right) - list.get(left);
// 如果两个相邻的数相等,那么就没有顺子
if (tmp == 0) {
return false;
}
sumOfNull += tmp - 1;
left++;
right++;
}
return numOf0 >= sumOfNull ? true : false;
}