1. 程式人生 > >leetcode 第一題 兩數之和

leetcode 第一題 兩數之和

1、暴力解法

兩個巢狀for迴圈可以解決(188ms)

2、利用map資料結構

用給出的矩陣構建map,只需要用兩個並列的for迴圈(12ms)

class Solution { public:     vector<int> twoSum(vector<int>& nums, int target) {         map<int, int> hash;         map<int, int>::iterator it;         vector<int> result;         for(int i = 0; i < nums.size(); i++)         {             hash.insert({nums[i], i});         }         for(int j = 0; j < nums.size(); j++)         {             it = hash.find(target - nums[j]);             int m = it->second;             if(it != hash.end() && m != j)             {                 result.push_back(j);                 result.push_back(m);                 hash.erase(nums[j]);                 hash.erase(nums[m]);             }         }     return result;     } };