JZ45-扑克牌顺子
扑克牌顺子
https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey
class Solution {
public boolean isContinuous(int[] numbers) {
if (numbers == null || numbers.length != 5) {
return false;
}
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < 5; i++) {
if (numbers[i] != 0) {//不包含0
if (!set.contains(numbers[i])) {
set.add(numbers[i]);
} else {
return false;//肯定不能有重复
}
}
}
return (Collections.max(set) - Collections.min(set)) < 5;//最大最小相差5
}
}
class Solution2 {
public boolean isContinuous(int[] numbers) {
if (numbers == null || numbers.length != 5) {
return false;
}
Arrays.sort(numbers);
int count = 0;
for (int temp : numbers) {
if (temp == 0) {
count++;
} else { //已排序,碰到第一个不为0的就break
break;
}
}
for (int i = count; i < numbers.length - 1; i++) {
if (numbers[i] == numbers[i + 1]) {
return false;
}
count -= (numbers[i + 1] - numbers[i] - 1); // 0 0 1 2 5 。。。两个非0数之间差一,正常;超过一就要用0补
}
return count >= 0; // 0 0 0 0 5.。。只需要剩余的0》=0即可,直接等于0会出问题
}
} 
顺丰集团工作强度 379人发布