[バイナリ検索]は911オンライン選挙をleetcode

問題:https://leetcode.com/problems/online-election/

         バイナリ探索問題は、主にハッシュマップを維持するために、2つの時点、投票者に対応する第一の予め計算現在時刻に基づきます。その後、半分にすることで、時間を見つけて、後にハッシュすることにより、対応する有権者を見つけます。

クラスTopVotedCandidate {
 パブリック
    unordered_map < int型int型 > 投票。
    ベクトル < 整数 > 時間。
    TopVotedCandidate(ベクトル < INT >&人物、ベクター< INT >&回){ 
        unordered_map < INTINT > スコア。
        時間 = 時間;
        int型 maxscore = 0 ;
        int型のmaxperson。
        以下のためのint型 I = 0; I <persons.size(); iは++ 
        { 
            [[i]は人]スコア ++ もし(スコア[人[I]]> = maxscore)
            { 
                maxscore = スコア[者[I]]。
                maxperson = 人物[I]。
            } 
            投票[回[I] = maxperson。
        } 
    } 
    
    int型 Q(INT T){ 
        それはオート = UPPER_BOUND(time.begin()、time.end()、T); 
        それは = PREV(それを)。
        返す投票を[* それ]。
    } 
}。

/ * * 
 *あなたのTopVotedCandidateオブジェクトがインスタンス化され、などと呼ばれます:
 * TopVotedCandidate * OBJ =新しいTopVotedCandidate(人、回)。
 * INT PARAM_1 = obj-> Q(t)は、
 * /

 

おすすめ

転載: www.cnblogs.com/fish1996/p/11285595.html