当前位置: 首页> 娱乐> 八卦 > LeetCode刷题记录(第二天)1. 两数之和

LeetCode刷题记录(第二天)1. 两数之和

时间:2025/7/13 9:23:48来源:https://blog.csdn.net/qq_62791684/article/details/140571190 浏览次数:0次

题目:1. 两数之和

标签:数组 哈希表
题目信息:
在这里插入图片描述
在这里插入图片描述

思路一:暴力做法

直接两重for循环遍历,判断两数和为target的时候返回下标结果

代码实现:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n=nums.size();vector<int>ans;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(nums[i]+nums[j] == target){ans.push_back(i);ans.push_back(j);return ans;}}}return ans;}
};

时间复杂度分析:
O(n^2)

思路二:哈希表

用哈希表来记录值和对应的下标。
先新建一个哈希表map
遍历数组,每遍历一个值,就判断(target-这个值)在不在map中,如果在,就可以结束遍历了。
否则,将这个值和对应下标存入哈希表中,遍历继续。

代码实现:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n=nums.size();vector<int>ans;unordered_map<int,int>mp;//值,下标for(int i=0;i<n;i++){if(mp.find(target-nums[i])!=mp.end()){ans.push_back(i);ans.push_back(mp[target-nums[i]]);}mp[nums[i]]=i;}return ans;}
};

时间复杂度分析:
O(1)

总结:

哈希表的妙用还是太多啦。

关键字:LeetCode刷题记录(第二天)1. 两数之和

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: