农业网站建设公司光谷做网站推广公司

张小明 2026/1/9 16:25:45
农业网站建设公司,光谷做网站推广公司,常熟网站建设书生商友,自己怎样做淘客网站核心思路回顾通过哈希表存储「已遍历元素值 → 下标」的映射#xff0c;遍历数组时计算当前元素的 “补数”#xff08;目标值 - 当前值#xff09;#xff0c;若补数存在于哈希表中#xff0c;则直接返回结果#xff1b;若不存在#xff0c;将当前元素存入哈希表#…核心思路回顾通过哈希表存储「已遍历元素值 → 下标」的映射遍历数组时计算当前元素的 “补数”目标值 - 当前值若补数存在于哈希表中则直接返回结果若不存在将当前元素存入哈希表继续遍历。详细解题步骤假设输入为vectorint nums和int target最终返回vectorint类型的下标数组具体步骤如下步骤 1引入必要头文件 命名空间C 中需要引入vector存储数组和unordered_map哈希表的头文件并用using namespace std;简化代码也可显式写std::cpp运行#include vector // 用于存储数组和返回结果 #include unordered_map // 哈希表容器 using namespace std;步骤 2定义函数 初始化哈希表函数返回值为vectorint参数为数组引用nums和目标值target创建空的unordered_map键为元素值int值为元素下标intcpp运行vectorint twoSum(vectorint nums, int target) { // 初始化哈希表键元素值值元素下标 unordered_mapint, int hashMap;步骤 3遍历数组逐个检查补数使用for循环遍历数组i为当前元素下标nums[i]为当前元素值计算补数complement target - nums[i]需要找到的另一个数检查补数是否在哈希表中若存在返回哈希表中补数对应的下标 当前下标i若不存在将当前元素值和下标存入哈希表继续遍历。代码实现cpp运行// 遍历数组i为下标nums[i]为当前元素 for (int i 0; i nums.size(); i) { int complement target - nums[i]; // 计算补数 // 检查补数是否在哈希表中find返回迭代器end()表示未找到 if (hashMap.find(complement) ! hashMap.end()) { // 找到则返回结果补数下标 当前下标 return {hashMap[complement], i}; } // 未找到则将当前元素和下标存入哈希表 hashMap[nums[i]] i; }步骤 4兜底返回语法要求题目保证输入必有唯一答案因此此处仅为满足函数语法要求返回空数组cpp运行// 题目保证有解此处仅兜底 return {}; }步骤 5测试函数可选编写main函数测试示例用例验证结果正确性cpp运行#include iostream // 用于输出结果 int main() { // 示例1nums [2,7,11,15], target 9 vectorint nums1 {2, 7, 11, 15}; int target1 9; vectorint res1 twoSum(nums1, target1); cout 示例1结果[ res1[0] , res1[1] ] endl; // 示例2nums [3,2,4], target 6 vectorint nums2 {3, 2, 4}; int target2 6; vectorint res2 twoSum(nums2, target2); cout 示例2结果[ res2[0] , res2[1] ] endl; // 示例3nums [3,3], target 6 vectorint nums3 {3, 3}; int target3 6; vectorint res3 twoSum(nums3, target3); cout 示例3结果[ res3[0] , res3[1] ] endl; return 0; }关键步骤解析以示例 2 为例nums [3,2,4], target 6遍历次数下标 i当前值 nums [i]补数 complement哈希表状态存入前检查结果哈希表状态存入后1036-33空未找到补数{3:0}2126-24{3:0}未找到补数{3:0, 2:1}3246-42{3:0, 2:1}找到补数 2下标 1无需存入最终返回[1, 2]符合示例 2 结果。暴力解法的解题步骤对比参考若用暴力法步骤如下时间复杂度 O (n²)外层循环遍历每个元素下标i从 0 到nums.size()-1内层循环遍历i之后的元素下标j从i1到nums.size()-1检查nums[i] nums[j] target若满足则返回{i, j}题目保证有解无需处理无结果情况。暴力法代码cpp运行vectorint twoSum(vectorint nums, int target) { int n nums.size(); for (int i 0; i n; i) { for (int j i 1; j n; j) { if (nums[i] nums[j] target) { return {i, j}; } } } return {}; }核心注意点哈希表选择unordered_map是哈希表查找 / 插入平均 O (1)若用map红黑树时间复杂度会升至 O (logn)效率更低避免重复元素先检查补数再存入当前元素确保不会使用同一个元素如示例 3 的 [3,3]返回值C 中直接返回vectorint满足 “返回数组下标” 的要求。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

河南艾特网站建设网站推广工具大全

FanFicFare:全网同人小说一键下载转换神器 【免费下载链接】FanFicFare FanFicFare is a tool for making eBooks from stories on fanfiction and other web sites. 项目地址: https://gitcode.com/gh_mirrors/fa/FanFicFare 还在为追更同人小说时频繁刷新网…

张小明 2026/1/6 12:04:34 网站建设

做资源网站怎么不封semi认证

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 同行可拿货,招校园代理 Python-flask-django_张俊涛d 重症监护室中急诊护理管理…

张小明 2026/1/1 13:55:23 网站建设

建筑网站排行榜怎么免费申请网站域名

Excalidraw图形对齐技巧:精准布局的秘诀 在远程协作日益成为常态的今天,一张清晰、结构分明的架构图往往比千言万语更有效。无论是向团队解释微服务调用链,还是在产品评审会上展示用户流程,我们都希望白板上的内容不仅“有内容”…

张小明 2026/1/8 8:13:42 网站建设

南山住房和建设局网站官网百盛联合建设集团网站

第一章:智谱Open-AutoGLM技术路径概述智谱AI推出的Open-AutoGLM是一套面向自动化自然语言处理任务的开源框架,融合了大语言模型(LLM)与自动化机器学习(AutoML)的核心理念。该技术路径旨在降低NLP应用开发门…

张小明 2025/12/31 6:56:26 网站建设

怎么做电脑网站后台佛山百度推广电话

Unp4k 终极指南:如何解密和提取 Star Citizen 游戏文件 【免费下载链接】unp4k Unp4k utilities for Star Citizen 项目地址: https://gitcode.com/gh_mirrors/un/unp4k Unp4k 是一个专为《星际公民》(Star Citizen) 游戏设计的强大工具集,能够帮…

张小明 2025/12/30 23:47:21 网站建设

南充商城网站建设在哪里推广自己的产品

LobeChat:构建现代 AI 聊天应用的全栈实践 在大语言模型重塑人机交互方式的今天,一个直观、灵活且安全的聊天界面,已经成为连接用户与智能的核心入口。无论是个人开发者想打造专属的知识助手,还是企业需要定制化的客服系统&#x…

张小明 2025/12/31 11:53:39 网站建设