#LeetCode:1. Two Sum

建 Hash 表將所選到之數字 a 所不足的那格 target - a 把自己的 index (i) 紀錄下來,這樣等到該不足之數 target - a 出現的時候可以直接查到與第 i 格湊起來即是答案。

C++(10ms)

/*******************************************************/
/* LeetCode 1. Two Sum                                 */
/* Author: Maplewing [at] knightzone.studio            */
/* Version: 2018/05/23                                 */
/*******************************************************/
class Solution {
public:
  vector<int> twoSum(vector<int>& nums, int target) {
    map<int, int> complementMap;
    for(int i = 0 ; i < nums.size() ; ++i){
      auto complement = complementMap.find(nums[i]);
      if(complement != complementMap.end()){
        int result[] = {complement->second, i};
        return vector<int>(result, result + 2);
      }
      complementMap[target - nums[i]] = i;
    }
  }
};
廣告

Comment

There is no comment on this post. Be the first one.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

%d 位部落客按了讚: