云浮新增病例详情,seo优化培训班,单位网站及政务新媒体建设管理,工作给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。
你可以假设每种输入只会对应一个答案#xff0c;并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
示例 1…给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。
你可以假设每种输入只会对应一个答案并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
示例 1 输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。 示例 2 输入nums [3,2,4], target 6 输出[1,2] 示例 3 输入nums [3,3], target 6 输出[0,1] #include iostream
#include vector
#include unordered_mapusing namespace std;class Solution
{
public:vectorint twoSum(vectorint nums, int target){// 1.创建哈希表unordered_mapint, int numsToIndex;// 存储数组索引vectorint arrIndex;for (int i 0; i nums.size(); i){int complement target - nums[i];if (numsToIndex.find(complement) ! numsToIndex.end()){arrIndex.push_back(numsToIndex[i]);arrIndex.push_back(i);return arrIndex;}// 2.建立映射numsToIndex[nums[i]] i;}return arrIndex;}
};int main() {Solution solution;vectorint nums { 2, 7, 11, 15 };int target 9;vectorint result solution.twoSum(nums, target);// 输出结果if (!result.empty()) {cout Indices of the two numbers that add up to target are: [ result[0] , result[1] ] endl;}else {cout No two numbers add up to the target. endl;}return 0;
}