leetcode 914カードパケット(最も一般的な要因はGCDを再生)

カードのデッキを考えると、各カードには、整数に書かれています。

この時点で、あなたは私たちが一の以上のグループに次のルールに従ってカードの完全なデッキできるようにという、デジタルXを選択する必要があります。

各グループは、Xカードを持っています。
グループ内のすべてのカードで同じ整数を書かれています。
> = 2がtrueを返す場合にのみ、あなたのオプションX.

 

例1:

入力:[1,2,3,4,4,3,2,1]
出力:真
解釈:グループ化が可能である[1,1]、[2,2]、[3,3]、[4,4 】
実施例2:

入力:[1,1,1,2,2,2,3,3]
出力:偽
の解釈:パケットが要件を満たしていません。
例3:

入力:[1]
出力:偽
の解釈:パケットが要件を満たしていません。
例4:

入力:[1,1]
出力:真
解釈:グルーピングが可能である[1,1]
実施例5:

入力:[1,1,2,2,2,2]
出力:真
の解釈:グループ化が可能である[1,1]、[2,2]、[2,2]

ヒント:

1 <= deck.length <= 10000
0 <=デッキ[I] <10000

出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards

クラス解決{
 パブリックint型 GCD(int型INT B)を{
         戻り B == 0:GCD(B、%のB)。
    } 
    ブール hasGroupsSizeX(ベクトル< INT >&デッキ){
         int型 [ 10010 ]。
        memset(0はsizeof ())。
        int型NUM;
        int型 MAXX = 0 ;
        INT iは= 0 ; I <deck.size()は、i ++ ){ 
            [デッキ[I]++ ; 
            NUM = [デッキ[I]]。
            MAXX = MAX(MAXX、デッキ[I])。
        } 
        ためINT iは= 0 ; I <= MAXX; I ++ ){
             場合([I] =!0)NUM = GCD(NUM、[I])。
        } 
        であれば(NUM == 1戻り 返す ; 
    } 
}。

 

おすすめ

転載: www.cnblogs.com/wz-archer/p/12579354.html