2347. 最好的撲克手牌
2023-02-21 09:05 作者:目標力扣Knight | 我要投稿

方法一:集合 + 哈希
利用集合元素唯一的特性,判斷其花色是否滿足第一個條件,利用哈希計數(shù),統(tǒng)計每一個級別的出現(xiàn)次數(shù),按照題目給定優(yōu)先級判斷每一個條件,注意哈希計數(shù)中,值的排序會影響到優(yōu)先級的執(zhí)行,因此我們用any()關(guān)鍵字處理只要有一個的情況。
Python版本
C++版本
復(fù)雜度分析
時間復(fù)雜度:O(C)。哈希表以 rank 數(shù)組中的值作為鍵,值域就是鍵的數(shù)量,最多為13,將 suit 數(shù)組轉(zhuǎn)換為集合,至多遍歷5次,總復(fù)雜度為18,記為常數(shù);
空間復(fù)雜度:O(C)。哈希表以 rank 數(shù)組中的值作為鍵,值域就是鍵的數(shù)量,最多為13。
備注
哈希數(shù)組中,鍵是否有序會影響到用if判斷是否存在對子和順子【相同數(shù)值的個數(shù)為三個以上以及兩個】誰先結(jié)束,為此使用Python 中的any()關(guān)鍵字,C++中的 any_of()函數(shù)判斷只要存在某個條件的條件;
標簽: