1. 两数之和
做题思路 or 感想 :
1,这种 N 数之和一般是可以用哈希表来解决
2,一般找差就直接用 哈希表自带的 find 去查差值是否存在就好了
3,惊了vector并不自带 find ,平常用的都是algorithm里的,而像 map , set 都是自带 find 的,所以在力扣刷题里要用 find 要搞个 map 或 set
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 unordered_map<int, int>HashMap; //key是值,val是下标 5 for (int i = 0; i < nums.size(); i++) { 6 auto it = HashMap.find(target - nums[i]); //经典用find处理n数和的问题 7 if (it != HashMap.end()) { 8 return {i, (*it).second}; 9 } 10 HashMap.insert(make_pair(nums[i], i)); //这里很有讲究,如果提前先把哈希表打好再进行上面的查找操作,可能会一个元素用两次,在这里再进行打印哈希表可以防止这种问题 11 } 12 return {}; //若无,则还一个空vector 13 } 14 };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升