[バイナリ検索] leetcode 1146スナップアレイ

問題:https://leetcode.com/problems/snapshot-array/

        暴力のこの質問は(すべてのスナップショットを抑えている)空間の制約を超えてしまうんが、二回、直接スナップショットがレコードを複製する必要がない値を変更しませんが、スペースの使用を低減する必要があります。バイナリ検索を使用する場合は、次にスナップショットの現在の値についてのレコード、および各インデックスの特定のスナップショットIDの現在の値を見つける各変形の値は、スナップショットIDに対応した値に等しい未満見えます。

クラスSnapshotArray {
 パブリック
    unordered_map < int型、マップ< int型int型 >> ARR。
    SnapshotArray(int型の長さ){ 
        
    } 
    
    ボイド 集合int型のインデックス、INT ヴァル){ 
        ARR [インデックス] [カウント] = ヴァルと、
    } 
    
    int型のカウント= 0 ;
    int型のスナップ(){
         戻り値の数++ ; 
    } 
    
    int型 のgetint型のインデックス、int型snap_id){
         場合(arr.find(インデックス)== arr.end())戻り 0 
       
        オートは = ARR [インデックス] .upper_bound(snap_id)を、
        もし(それは== ARR [インデックス] .begin())
        { 
            戻り 0 
        } 

        戻り PREV(IT) - > 第二; 
    } 
}。

 

おすすめ

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