1. 程式人生 > >44、撲克牌中的順子

44、撲克牌中的順子

連續 null lose arr src port else alt 判斷

思路:將大小王設為0,5個數排序。 1、統計0個數和間隔數,空缺總數小於等於0個數說明連續。 2、且數組不能有相同的數此為對子。排序只有在n很大時才有意義。普通排序即可。 技術分享
import java.util.Arrays;
public class Solution {
    public boolean isContinuous(int [] numbers) {
        //數組不能為空,也不能長度小於5
        if (numbers == null || numbers.length < 5) {
            return false;
        }
        
//數組排序,n很小考慮時間復雜度沒意義 Arrays.sort(numbers); //統計0的個數 int zeroCount = 0; int gapCount = 0; for (int i = 0; i < numbers.length; i++) { if (numbers[i] == 0){ zeroCount++; } } //統計gap個數,並排除數組有重復的數 //第一個不為0的數 int
small = zeroCount; while (small <= numbers.length - 2){ if (numbers[small] == numbers[small + 1]){ return false; } gapCount += (numbers[small + 1] - numbers[small] - 1); small++; } //判斷gap和zero關系 if (gapCount <= zeroCount){
return true; } else { return false; } } }
View Code

測試:輸入null、抽出的牌有一個或多個大小王,抽出的牌沒有大小王,抽出的牌有對子。

44、撲克牌中的順子