Skip to content

哈希表

又稱為「雜湊表(hash table)」

簡單來說就是班上的座號,我們對「哈希函數」輸入座號,就可以得到名字

來看例題
https://leetcode.com/problems/two-sum/description/

題目:
給定一個整數數組nums 和一個整數target,
傳回兩個數字的索引,使它們相加為target。

您可以假設每個輸入都有一個解決方案,並且您不能兩次使用相同的元素。

您可以按任意順序返回答案。

code
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {

        unordered_map<int,int>mp;
        vector<int>ans;

        int n=nums.size();
        for(int i=0;i<n;i++){
            int x;
            x=nums[i];
            //cout<<":"<<target-x<<nn;
            if(mp.find(target-x)!=mp.end()){
                ans.push_back(mp[target-x]);
                ans.push_back(i);
                return ans;
            }
            else{
                mp[x]=i;
            }
        }
        return ans;
    }
};

這邊的map就是將數值映射到index