两数之和

		输入:[3, 2, 4], 6
		返回值:[2, 3]

			class Solution {
			public:
				/**
				 *
				 * @param numbers int整型vector
				 * @param target int整型
				 * @return int整型vector
				 */
				vector<int> twoSum(vector<int>& numbers, int target) {

					map<int, int> m;				//定义hash表,第一个值是key,第二个是value
					vector<int> res;
					for (int i = 0; i < numbers.size(); i++) {
						m[numbers[i]] = i;			//对 hash 的  key 赋值
					}
					for (int i = 0; i < numbers.size(); i++) {
						int diff = target - numbers[i];
						if (m.find(diff) != m.end() && m[diff] > i) {		//查找到的不等于hash的最后一个 ,并且   “m[diff] > i”
							res.push_back(i + 1);							//“i+1” 和 “m[diff]+1” 压进去
							res.push_back(m[diff] + 1);
							break;
						}
					}
					return res;
				}
		};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值