LeetCode.1(2つの数値の合計)-シンプル
-
整数配列numsとターゲット値targetを指定して、合計が配列内のターゲット値である2つの整数を見つけ、それらの配列インデックスを返します。各入力は1つの回答にのみ対応すると想定できます。ただし、配列内の同じ要素を2回使用することはできません。
例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
-
コード:
//2020_04_17 class Solution { public: vector<int> twoSum(vector<int> &nums, int target) { vector<int> res{0, 0}; //结果容器 unordered_map<int, int> um; //哈希表(值,下标) for (int i = 0; i < nums.size(); i++) //遍历容器元素 { auto it = um.find(target - nums[i]); //查找另一个元素 if (it != um.end()) //如果找到 { res[0] = it->second; //输出其下标 res[1] = i; //输出当前遍历的元素下标 return res; //返回 } um[nums[i]] = i; //没找到则将该元素加入哈希表 } return res; } };
-
結果: