劍指offer-撲克牌順子 -- Java實現

題目

在這裏插入圖片描述

分析

思路一:

可以這麼理解,簡單來說就是要是5個數字,最大和最小差值在5以內,並且沒有重複數值。用一個set來填充數據,0不要放進去。set的大小加上0的個數必須爲5個。此外set中數值差值在5以內。

代碼:

import java.util.TreeSet;
public class Solution {
    public boolean isContinuous(int [] numbers) {
        if(numbers.length != 5) return false;
        int num = 0;
        TreeSet<Integer> treeSet = new TreeSet<>();
        for(int i = 0; i < numbers.length; i++) {
            if(numbers[i] == 0) {
                num++;
            } else {
                treeSet.add(numbers[i]);
            }
        }
        
        if(treeSet.size() + num != 5) {
            return false; //雖然前面已經判斷過一次長度,但這裏是防止set中添加重複數字
        } else {
            return (treeSet.last() - treeSet.first()) < 5;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章