题解 | 扑克牌顺子
扑克牌顺子
https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&&tqId=11198&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
算是脑筋急转弯类型的数学题吧,两个关键点:
- 除了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;
}
} 
