1.兩數之和(Two Sum) C++


暴力法可解決,速度很慢。

解決辦法:哈希表

知識點:

  • map的構造
  • 遍歷map使用迭代器,判斷條件
  • 插入  pair<int,int>
  • 尋找key是否存在
    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            map<int,int> m;
            map<int,int>::iterator itr;
            vector<int> ans;
            for(int i=0; i<nums.size(); i++)
            {
    
                if(i == 0)
                {
                    m.insert(pair<int,int>(nums.at(i),i));
                    continue;
                }
    
                itr = m.find(target-nums.at(i));
                if(itr != m.end())
                {
                    ans.push_back(itr->second);
                    ans.push_back(i);
                    return ans;
                }
                m.insert(pair<int,int>(nums.at(i),i));
            }
        }
    };

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM