360网站怎么做网址链接,分销订单管理系统,网络ui设计培训班,江苏嘉瑞通建设有限公司网站两数之和
给定一个整数数组 nums和一个目标值target#xff0c;请你在该数组中找出和为目标值的那两个整数#xff0c;并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是#xff0c;你不能重复利用这个数组中同样的元素。
nums [2,7,11,15]target 9[0,1]枚…两数之和
给定一个整数数组 nums和一个目标值target请你在该数组中找出和为目标值的那两个整数并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是你不能重复利用这个数组中同样的元素。
nums [2,7,11,15]target 9[0,1]枚举法
class Solution {
public:vectorint twoSum(vectorint nums, int target) {for(int i0;inums.size();i){for(int ji1;jnums.size();j){if(nums[i]nums[j]target){return{i,j};}}}return {};}
};时间复杂度On^2空间复杂度O1
方法2查找表法
在遍历的同时记录信息省去部分循环以空间换时间需要记录已经遍历过的数值和它所对应的下标可以借助查找表实现哈希表平衡搜索二叉树 auto 是一种类型推断关键字它允许编译器根据变量的初始值自动推断其类型。使用 auto 可以简化代码特别是在处理复杂的类型或使用模板时。
转载C map的常用用法超详细()人()
class Solution {
public:vectorint twoSum(vectorint nums, int target) {int lennums.size();mapint,inthashtable;for(int i0;ilen;i){auto ithashtable.find(target-nums[i]);if(it!hashtable.end())return {it-second,i};hashtable[nums[i]]i; }return {};}
};