leetcode 1二つの数字ハッシュマップ

主にハッシュマップ。側挿入エッジの外観があり、効率を改善し、スペースの複雑さを軽減します。

前にマップを使用し、より効率的に、そこにHashMapことが判明し。

名前空間に注意してください。 

名前空間の使用__gnu_cxxを。

問題は、現在、C ++標準テンプレートライブラリに含まれていないhash_mapが、問題は時にクロスプラットフォームの使用を発生することがあります

 

しかし、STLのほぼすべてのバージョンは、対応する実装を提供します。

ヘッダファイル<hash_map>

また、地図データが挿入されているいくつかの方法があります。私はmake_pair使用しました

 

一般的

  1.    マップ< int型、文字列> mapStudent。  
  2.   
  3.     mapStudent.insert(対< 整数、文字列>(1、  "student_one"));  
  1.  マップ< int型、文字列> mapStudent。  
  2.   
  3.     mapStudent.insert(マップ< int型、文字列> :: VALUE_TYPE(1、  "student_one"));  
  1.  マップ< int型、文字列> mapStudent。  
  2.   
  3.     mapStudent.insert(make_pair (1、  "student_one"));  
  4.   
  5.     mapStudent.insert(make_pair (2、  "student_two"));  

 

書式#include <hash_map> 
書式#include <ベクトル> 使用して名前空間の__gnu_cxxを。クラス解決{
 パブリック
    ベクトル < INT > twoSum(ベクトル< INT >&NUMS、int型のターゲット){
         / * 
        ベクトル<整数> B。
        以下のために(INT i = 0; i)は(nums.sizeを<; iは++)
            mmap.insert(make_pair(NUMS [I]を、私は))。
        以下のために(INT i = 0; i)は(nums.sizeを<; iは++)
        { 
            IF((mmap.count(ターゲットNUMS [I]))&&(MMAP [ターゲットNUMS [I] = 1)!)
            { 
                b.push_back(MMAP [ターゲットNUMS [I])。
                b.push_back(I);

 


       
                ブレーク; 
        } * / 
        ベクター < INT > B。
          hash_map < int型int型 > のmmap。
        以下のためにint型 i = 0 ; i)は(nums.sizeを<; iは++ 
        { 
             mmap.insert(make_pair(NUMS [i]は、I))。
            もし((mmap.count(ターゲットNUMS [I]))&& =(MMAP [i]はターゲットNUMS]!I))
            { 
                b.push_back(MMAP [ターゲット - NUMS [I])。
                b.push_back(I); 
                破ります; 
            } 
        }
        
        リターンB; 
    }。
}。

 

おすすめ

転載: www.cnblogs.com/lqerio/p/11706340.html