LeetCode 1.2つの和 - ハッシュテーブル

LeetCode 1つ合計

整数の配列を考えると、彼らは特定のターゲットまで追加するように、2つの数のインデックスを返します。

あなたは、各入力が持っているであろうと仮定してもよい  、正確に  一つの解決策を、あなたが利用することはできません  同じ  二度の要素を。

例:

所与のNUMS = [ 271115 ]、目標= 9 

NUMS [ので0 ] + NUMSが[ 1 ] = 2 + 7 = 9 戻り [ 01 ]。

ソリューション:

  

クラス解決{
 パブリック
    ベクトル < INT > twoSum(ベクトル< INT >&NUMS、int型のターゲット){ 
        unordered_map < INTINT > M。
        ベクトル < int型 > のres; 
        
        以下のためにint型 i = 0 ; i)は(nums.sizeを<; iは++ 
            のM [のNUMS [I] = I; //实现数字到索引的映射
        
        ためint型 i = 0 ; iはnums.sizeを<(); ++ I){
             int型 T =標的-NUMS [I]; 
            
            IF(!m.count(T)&& M [T] = I){    //は、  //ページ389 C ++プライマーを見て、[3 2 4]目標=戻る6つの0,0の発生を防止することができる
                RESを.push_back(I); 
                res.push_back(M [T]); 
                BREAK ; 
            } 
        } 
        戻りRES; 
        
    } 
}。

 

おすすめ

転載: www.cnblogs.com/dingxi/p/11571139.html