题解 | #两数之和#

两数之和

http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

利用两数互补和哈希查找的原理

class Solution {
public:
    /**
     * 
     * @param numbers int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& numbers, int target) {
      std::vector<int> res;
      std::unordered_map<int, int> hash;
      
      for (int i = 0; i < numbers.size(); ++i) {
        int tmp = target - numbers[i];
        
        //  找不到
        if (hash.find(tmp) == hash.end()) {
          hash.insert({numbers[i], i});
        } else {
          res.push_back(hash[tmp] + 1);
          res.push_back(i + 1);
          break;
        }
      }
      
      return res;
    }
};
全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务