算是脑筋急转弯类型的数学题吧,两个关键点:
- 除了0以外,数组的极差不能超过4
- 除了0以外,数组中的其他数字不能有重复
public class Solution { public boolean IsContinuous(int [] n) { int[] hash = new int[14]; for (int i : n) { hash[i]++; } for (int i=0; i <14; i++) { if (i != 0 && hash[i] > 1) return false; } int max = max(n); int min = min(n); if (max - min > 4) return false; return true; } private int max(int[] n) { int max = n[0]; for (int i : n) { if (i > max) max = i; } return max; } private int min(int[] n) { int min = Integer.MAX_VALUE; for (int i : n) { if (i < min && i != 0) min = i; } return min; } }