两数之和(哈希表 /unordered_map)

两数之和

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

/*
unordered_map<int, int> mp
mp.find(val)!=mp.end()
mp.count(val)!=0
*/
class Solution {
public:
    /**
     * 
     * @param numbers int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& numbers, int target) {
        unordered_map<int,int> mp;
        for(int i=0;i<numbers.size();i++){
            if(mp.find(numbers[i])!=mp.end()){ // 该互补数存在另一个数的位置
                return {mp[numbers[i]]+1,i+1}; // return {a,b}自动返回vector类型
            }else{
                mp[target-numbers[i]]=i; // 在其互补的数上存放其位置
            }
        }
        return {-1,-1};
    }
};
全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务