台州外贸网站建设,wordpress 后台 安全,江苏网站建设培训,注册一个家政公司需要多少钱两数之和 题目思路C代码 题目 思路
根据题目要求#xff0c;元素不能重复且不需要排序#xff0c;我们这里使用哈希表unordered_map。注意题目说了只对应一种答案。
所以我们在循环中#xff0c;使用目标值减去当前循环的nums[i]#xff0c;得到差值#xff0c;如果我们… 两数之和 题目思路C代码 题目 思路
根据题目要求元素不能重复且不需要排序我们这里使用哈希表unordered_map。注意题目说了只对应一种答案。
所以我们在循环中使用目标值减去当前循环的nums[i]得到差值如果我们在map中能够找到这个差值就说明存在两个整数的和为目标值。
如果没有找到就将当前循环的nums[i]以及下标i放入map中以便后续查找差值。
C代码
class Solution {
public:vectorint twoSum(vectorint nums, int target) {unordered_mapint, int map;for (int i 0; i nums.size(); i) {//在map中找差值auto iter map.find(target - nums[i]);if (iter ! map.end()) {//找到即返回两个下标return {iter-second, i};}//没找到将当前的值和下标插入map中map.insert(pairint, int(nums[i], i));}return {};}
};