サイズの配列を指定して n個、大多数の要素を見つけます。大多数の要素がより見える要素である ⌊ n/2 ⌋
回。
あなたは、配列が空であると仮定してもよいし、多数の要素は常に配列に存在します。
例1:
入力:[3,2,3] 出力:3
例2:
入力:[2,2,1,1,1,2,2] 出力:2
効果の対象:
モードの配列を探します。
理解:
神は、大きな解決策を見てください。
valは、同じ数のカウント++遭遇、要素の最大数をマークカウントが0に等しい場合、count--異なる番号が発生し、valは新しい要素されている更新プログラム。
コードC ++:
クラス解決{ パブリック: INT majorityElement(ベクトル< INT >&NUMS){ int型のval = NUMS [ 0 ]。 int型のカウント= 1 ; int型私は、 用(i = 1 ; iは(nums.sizeを<); ++ I){ 場合(==カウント0 ) ヴァル = NUMS [I]。 もし(NUMS [i]を== val)で カウント ++ ; 他の 数 - ; } 戻りヴァルと、 } }。
結果:
ときに実行:28ミリ秒は、Cに提出するすべてのユーザーの81.41パーセントを打つ++
メモリ消費量:11メガバイトは、Cに提出するすべてのユーザーの87.66パーセントを破っ++