两数之和

两数之和

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

借助map辅助:

class Solution {
public:
    /**
     *
     * @param numbers int整型vector
     * @param target int整型
     * @return int整型vector
     */
    vector twoSum(vector &numbers, int target) {
        // write code here
        unordered_map m;
        // 1. 存储下标到map
        for (int i = 0; i < numbers.size(); ++i) m[numbers[i]] = i + 1;
        // 2. 再次扫描序列
        for (int i = 0; i < numbers.size(); ++i) {
            if (m.find(target - numbers[i]) != m.end()) {
                int idx = m[target - numbers[i]];
                vector vec = {i + 1, idx};
                if (idx > i + 1) return vec;
            }
        }
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

昨天 00:37
已编辑
山东大学 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
DBsan:我也遇到过好的HR,全程友好交流。这年头基本的礼貌和尊重为什么好多HR都做不到
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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