Leetcode.1. 两数之和

前言:

        两数之和,梦开始的地方,就像abondan一样,直接让我abondan。

        把两数之和放在第一题,对于代码小白非常不友好……

思路:

        遍历一次数组,对于每个元素i,想查找数组中是否存在target-i。

        提到查找,就会想到哈希表!

       根据题目,稍加思考, 哈希表使用map,存储数与下标,因为返回值为下标。

        值得注意的是,查找与存储的顺序有严格的要求:查找先于存储!如果先存储,则可能查找到自己!

代码:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值