JZ61 撲克牌順子 描述 現在有2副撲克牌,從撲克牌中隨機五張撲克牌,我們需要來判斷一下是不是順子。 有如下規則: 1. A為1,J為11,Q為12,K為13,A不能視為14 2. 大、小王為 0,0可以看作任意牌 3. 如果給出的五張牌能組成順子(即這五張牌是連續的)就輸出true,否則就輸出f ...
JZ61 撲克牌順子
描述
現在有2副撲克牌,從撲克牌中隨機五張撲克牌,我們需要來判斷一下是不是順子。
有如下規則:
1. A為1,J為11,Q為12,K為13,A不能視為14
2. 大、小王為 0,0可以看作任意牌
3. 如果給出的五張牌能組成順子(即這五張牌是連續的)就輸出true,否則就輸出false。
4.數據保證每組5個數字,每組最多含有4個零,數組的數取值為 [0, 13]
具體做法:
將 nums 數組依次裝入 set集合,遇到 0 則返回裝下一個元素,出現重覆元素則返回 false,併在其中記錄max,min,最終max-min >= 5的都不是順子;
代碼
package esay.JZ61撲克牌順子;
import java.util.HashSet;
public class Solution {
public boolean IsContinuous(int [] numbers) {
HashSet<Integer> set = new HashSet<>();
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int number : numbers) {
if (number == 0) continue;
if (set.contains(number)) {
return false;
} else {
set.add(number);
}
max = Math.max(max, number);
min = Math.min(min, number);
}
return max - min < 5;
}
}