力扣前1500道非会员题刷题笔记
Problem: 1. 两数之和
思路
首先定义一个unordered_map<int, int> heap
, 用来记录数组nums
中对应的数的下标
然后在一个for循环里遍历nums
数组
用r记录target与当前数组的值的差值,再从当前数的前面找有没有这个差值,也就是heap.count(r)
, 如果有则返回{heap[r], i}
, 如果没有就把当前的数以及它的下标记录进map,heap[nums[i]] = i;
最后因为力扣的严谨,循环外加一个return {};
解题过程
根据思路直接用c++打出来即可
复杂度
时间复杂度:
O(n)
空间复杂度:
O(n)
Code (c++)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> heap;
for (int i = 0; i < nums.size(); i ++)
{
int r = target - nums[i];
if (heap.count(r))
return {heap[r], i};
heap[nums[i]] = i;
}
return {};
}
};
作者:Focused Maxwell5f0(即是我本人,你们也可以去关注我的力扣账号(*^▽^*)
)
链接:https://leetcode.cn/problems/two-sum/solutions/2967806/liang-shu-zhi-he-ti-jie-by-focused-maxwe-6md1/
来源:力扣(LeetCode)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体