leetcode 第一題 兩數之和
阿新 • • 發佈:2018-12-14
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; } };