1. Two Sum


思路:map是關鍵。用map對另一個number的index進行映射。


class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        
        unordered_map<int, int> nums_map; //內部實現是基於哈希表,因此其查找速度非常的快
        for (int i = 0; i < nums.size(); ++i){
            //nums_map.insert(pair<int, int>(nums[i], i));  
            nums_map[nums[i]] = i; // 比上面寫法速度更快些
        }
        
        vector<int> ans;
        for (int i = 0; i < nums.size(); ++i){
            int t = target - nums[i];
            
            if (nums_map.count(t) && i != nums_map[t]){
                ans.push_back(i);
                ans.push_back(nums_map[t]);
                break;
            }
        }
        
        return ans;
        
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章