力扣100题——1.两数之和

发布时间:2026/10/15 19:14:25

力扣100题——1.两数之和 1.题目两数之和给定一个整数数组nums和一个整数目标值target请你在该数组中找出和为目标值target的那两个整数并返回它们的数组下标。你可以假设每种输入只会对应一个答案并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例 1输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。示例 2输入nums [3,2,4], target 6 输出[1,2]示例 3输入nums [3,3], target 6 输出[0,1]提示2 nums.length 104-109 nums[i] 109-109 target 109只会存在一个有效答案进阶你可以想出一个时间复杂度小于O(n2)的算法吗使用哈希函数解决问题用哈希表来解决复杂度为o(n), c语言自带哈希函数。2.代码class Solution { public: vectorint twoSum(vectorint nums, int target) { // vector动态数组nums定义为动态数组可以使用size函数 unordered_mapint,int seen; //key:数字 value下标值 seen初始为空 for(int i0;inums.size();i){ int needtarget-nums[i]; auto it seen.find(need); if(it!seen.end()){ //seen.end()查找失败标记 return {it-second,i}; } seen[nums[i]]i; //查找失败则将该数据存入seen中 } return {}; } };3.具体解析auto it seen.find(need);①seen.find(need)seen是unordered_mapint,int哈希表。.find(键)在哈希表里查找 key need 这个数。返回值如果找到了 → 返回一个迭代器 (iterator)指向这个键‑值对如果找不到 → 返回seen.end()代表「末尾空位置没找到」② 什么是迭代器it你可以把迭代器it理解成指向 map 里面某一条记录的指针。 一条 map 记录是一对pairint, intit-first→ key存的数字it-second→ value数字对应的下标③ 为什么用autofind返回的类型很长完整写出来是unordered_mapint,int::iterator it seen.find(need);auto让编译器自动推导左边变量的类型不用你手写一长串迭代器类型。 效果完全等价只是简写。机试写代码强烈推荐 auto省时不容易写错类型。return {it-second, i};的本质这个{ ... }叫做列表初始化uniform‑initialization作用临时构造一个 vectorint 对象把两个整数放进去。它等价于vectorint temp;temp.push_back(it-second);temp.push_back(i);return temp;① 值传递不带 vectorint numsvectorint twoSum(vectorint nums, int target)程序会把外面整个 vector 完完整整复制一份在函数内部生成一个全新、独立的数组。两块不同内存修改函数里 nums 不会影响外面原数组缺点数组很大时复制非常慢浪费内存② 引用传递带 vectorint numsvectorint twoSum(vectorint nums, int target)不拷贝函数内 nums 只是原数组的外号。只有一块内存nums 和原数组就是同一个东西修改 nums 会直接改到外面原始数组
延伸阅读

更多相关文章

2026/10/15 19:14:25

2026半入耳降噪耳机推荐:送自己送朋友都合适的华为FreeBuds 7

2026半入耳降噪耳机推荐:送自己送朋友都合适的华为FreeBuds 7想送一副体面又实用的耳机,华为FreeBuds 7 悦彰耳机四色设计耐看、降噪舒适跨生态全在线,iOS和安卓都能用,千元内送礼不跌份,自己用也天天顺手。华为FreeBu…

2026/10/15 20:24:59

Advanced Installer 15.2汉化实践:Windows安装包多语言工程化落地

简介:Advanced Installer 15.2汉化版是一款面向Windows平台开发者与系统管理员的专业级安装包制作工具,解决传统MSI打包流程复杂、本地化支持弱、跨环境部署兼容性差等痛点,适用于.NET、Java、SQL Server等多技术栈项目的自动化部署场景。资源…

2026/10/15 20:24:59

轻量级中文词典HTTP服务:Flask+SQLite构建NLP数据预处理基础设施

简介:这是一份面向中文自然语言处理、前端词典应用开发及汉字教学研究者的汉语词典结构化数据集,提供21104个汉字与符号的完整属性标注。资源以JSON为主(共28个),涵盖全量字段的full.json、轻量版slim.json、纯字表wor…

2026/10/15 20:24:59

Spring Boot 整合 Shiro 实现数据库权限认证

1. 项目概述:为什么在 Spring Boot 里非得用 Shiro 做权限控制?“shiro学习三(spring boot整合shiro读取数据库数据实现用户登录,权限认证)”——这个标题看似平实,但背后藏着一个非常典型的、几乎每个 Jav…

2026/10/15 20:24:59

边缘-云协同架构下低延迟数据传输优化实践

我们团队在推进模拟项目X的过程中,面临过一个很现实的性能瓶颈:边缘端的数据要全部汇聚到云端处理,再决定是否下发控制指令。当节点数量从几十扩展到几百,链路波动、带宽占用、决策时延这些老问题全部被放大。后来我们花了大概三个…

2026/10/15 20:24:59

Python电磁场可视化实战:从电偶极子到射频调试

1. 这不是物理课,是“电磁场可视化”实战手记你有没有过这种体验:翻开《电磁场与电磁波》教材,第一页就看到麦克斯韦方程组的积分形式和微分形式并排而立,旁边还配着矢量算符∇、旋度curl、散度div——字都认识,连起来…

2026/10/14 11:31:03

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/14 17:41:07

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/15 13:42:16

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/15 0:02:22

防关联浏览器哪个好?三款产品实测差异解析

新手做多店铺,最纠结的就是防关联浏览器选哪个。飞跨、网易、站斧这三款被问得最多,先给结论:要一体化省心、长期便宜,选站斧;要网易招牌和稳,选网易;预算紧做东南亚 Lazada,选飞跨。…

2026/10/15 0:02:22

影刀RPA深度实战:大模型Fine-tuning定制RPA专用Prompt与指令生成

影刀RPA深度实战:大模型Fine-tuning定制RPA专用Prompt与指令生成 一、技术背景 大模型(LLM)在通用场景下表现强大,但当我们将 GPT-4 或 Qwen 直接用于生成影刀RPA操作指令和 XPath 定位时,准确率通常只有 40%-60%。原因…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑