LeetCode 题解之 Two Sum

1、题目描述

2、问题分析

 使用hashTable 寻找,target  -  num[i] ,将时间复杂度降低到 O(n);

3、代码

 1 vector<int> twoSum(vector<int>& nums, int target) {
 2         map<int ,int> m;
 3         for( int i = 0; i < nums.size() ; ++i ){
 4             m[nums[i]] = i;
 5         }
 6         vector<int> result;
 7         for( int i = 0; i < nums.size() ; ++i ){
 8             auto it = m.find( target - nums[i] ) ;
 9             if( it != m.end() && it->second != i ){
10                 result.push_back( i );
11                 result.push_back( it->second );
12                 break;
13             }
14         }
15         return result;
16         
17     }

 

posted @ 2018-07-14 07:56  山里的小勇子  阅读(159)  评论(0编辑  收藏  举报