【劍指offer】61 撲克牌中的順子

面試題61. 撲克牌中的順子

難度簡單21

從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的。2~10爲數字本身,A爲1,J爲11,Q爲12,K爲13,而大、小王爲 0 ,可以看成任意數字。A 不能視爲 14。

 

示例 1:

輸入: [1,2,3,4,5]
輸出: True

 

示例 2:

輸入: [0,0,1,2,5]
輸出: True

 

限制:

數組長度爲 5 

數組的數取值爲 [0, 13] .

解題思路,利用1 2 3 4 5來看最大值5,最小值是1,差值爲5-1+1 = 5,所以只要差值小於等於5就可以用零補齊,然後再判斷是否有蟲回覆的出現,有重複直接返回false

class Solution {
    public boolean isStraight(int[] nums) {
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int [] arrays = new int[14];
        Arrays.fill(arrays,0);
        for(int i = 0;i<nums.length;i++){
            if(nums[i] != 0){
                if(arrays[nums[i]-1]<=1){
                    arrays[nums[i]-1]++;
                }
                if(arrays[nums[i]-1]>1){
                    return false;
                }
                min = Math.min(min,nums[i]);
                max = Math.max(max,nums[i]);
            }
        }
        return max-min+1<=5;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章