力扣算法解析(力扣-两数之和)
时间:2024-12-23 09:32:46

解法一
两层循环,时间复杂度O(n^2),空间复杂度O(1)。
执行时间244ms,内存消耗9.3MB。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ret;
int len = nums.size();
for (int i = 0; i < len; i ++) {
for (int j = i + 1; j < len; j ++) {
if (target - nums[i] == nums[j]) {
ret.insert(ret.begin(), i);
ret.insert(ret.begin()+ 1, j);
break;
}
}
if (ret.size() == 2) {
break;
}
}
return ret;
}
};
解法二
map记录数组元素与下标的映射关系,遍历一遍数组求解。时间复杂度O(n),空间复杂度O(n)。
执行时间20ms,内存消耗10.1MB。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ret;
map<int, int> mapnum;
int len = nums.size();
for (int i = 0; i < len; i ++) {
int key = target - nums[i];
map<int, int>::iterator it = mapnum.find(key);
if (it == mapnum.end()) {
mapnum.insert(pair<int, int>(nums[i], i));
} else {
ret.insert(ret.begin(), mapnum.find(key)->second);
ret.insert(ret.begin() + 1, i);
break;
}
}
return ret;
}
};
解法三
用unordered_map构造映射,比map更快。因为map是用红黑树实现的,数据插入里面会排好序,搜索过程的时间复杂度为O(logn)。而unordered_map是用哈希表实现的,查找元素的时间复杂度为O(1)。
map适用于对内存大小敏感或数据要求有序性的情况;unordered_map适用于对查询效率要求较高的情况。
总得来说,这种解法的时间复杂度O(n),空间复杂度O(n)。耗时4ms,内存消耗10.3MB。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ret;
unordered_map<int, int> unorderedmap;
int len = nums.size();
for (int i = 0; i < len; i ++) {
unorderedmap[nums[i]] = i;
}
for (int i = 0; i < len; i ++) {
int key = target - nums[i];
if (unorderedmap.count(key) && unorderedmap[key] != i) {
ret.push_back(i);
ret.push_back(unorderedmap[key]);
break;
}
}
return ret;
}
};
相关推荐
- 镜影谜环:从人格裂变到真相觉醒全本章节阅读
- 威力weili中央空调天花机售后维修号码-人工售后号码实时反馈-今-日-资-讯(威力weili中央空调天花机空调响 )
- CLIMAVENETA空调全国服务号码-全国400服务号码实时反馈全+境+到+达(CLIMAVENETA空调手机控制空调 )
- 海普空调服务号码-故障报修热线号码实时反馈-今-日-资-讯(海普空调空调除湿模式 )
- 美意空调400服务号码全国售后的热线实时反馈-今-日-资-讯(美意空调空调显示C4故障码,怎么处理? )
- RC空调售后24小时联系方式维修查询实时反馈-今-日-更-新(RC空调空调se )
- 夏普中央空调售后全国服务号码多少实时反馈全+境+到+达(夏普中央空调空调咋样 )
- COLMO空调售后服务部热线(COLMO空调空调怎么选 )
- 三洋空调服务热线号码各区24小时维修实时反馈-今-日-资-讯(三洋空调空调最新款 )
- 卡萨帝空调24小时各市区网点服务热线(卡萨帝空调空调遥控手机 )
热门推荐
- GE空调用户客服中心实时反馈-今-日-更-新(GE空调除甲醛空调 )
- 月季扦插生根最快方法是什么? 月季的4种“快速扦插技巧”,生根速度快5倍,操作简单,成活率高
- 盾安空调售后全国服务号码多少实时反馈全+境+到+达(盾安空调空调寿命 )
- armyday是什么节日?八一建军节,牢记使命,砥砺前行,致敬最可爱的人
- 三菱电机中央空调全国统一24小时售后服务热线号码(三菱电机中央空调空调 e5 )
- 车辆检测分享,全过程带你飞!
- 上菱空调维修售后号码24小时丨全国400服务点实时反馈-今-日-汇-总(上菱空调内机开关电源损坏 )
- 移民香港只需6万吗?
- 七星空调客服热线人工服务24小时(七星空调空调 e3 )
- 酒醉状态下,半推半就发生关系,是否定义为强奸?