WEI-CHENG CHEN

描述

要在整數陣列中,去湊出符合 target 的元素

解法 01:暴力解


class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int n = nums.size();
        for(int i=0;i<n;i++){
            // j要從i+1開始,因為不能重複
            for(int j=i+1;j<n;j++){
                if(nums[i]+nums[j]==target){
                    return {i, j};
                }
            }
        }
        return {};
    }
};

解法 02:Hash Table

建立一個 Hash Table,然後每次去紀錄 x,同時檢查 target-x 這樣的數字是否存在

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> map;
        int n = nums.size();
        for(int i=0;i<n;i++){
           int temp = target - nums[i];
           if(map.count(temp)){
            return {map[temp], i}; // 返回找到的索引
           }
           map[nums[i]] = i; // 儲存當前數字及其索引

        }
        return {};
    }
};