C++刷題筆記:哈希表 map

文章目錄


兩數之和
在這裏插入圖片描述

利用map容器“一對一”記錄兩數關係. 主要思路是查找對偶數other是否被記錄, 如果無,則將當前元素作爲對偶數存入map;如果存在對偶數,則返回二者的索引. 時間複雜度O(n)O(n), 空間複雜度O(n)O(n)

class Solution 
{
public:
    vector<int> twoSum(vector<int>& nums, int target) 
    {
        map<int, int> record;
        for(int i=0; i<nums.size(); i++)
        {
            int other = target - nums[i];
            if(record.count(other))
            {
                return {i, record[other]};
            }
            else
            {
                other = nums[i];
                record[other] = i;
            }
        }
        return {-1,-1};
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章