如何做聚合类网站业务员销售管理软件
news/
2025/9/24 8:31:59/
文章来源:
如何做聚合类网站,业务员销售管理软件,动漫男的和女的做视频网站,app编程入门教程1.题目
给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是#xff0c;数组中同一个元素在答案里不能重复出现。
你可以按任意…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) 的算法吗
2.分析与解答
2.1基础知识
map是STL的一个关联容器。
mapstring,int cnt;//前键后值键就可以理解为索引每个索引只能在map中出现一次
map中修改数据 int i my_Map[“a”]; my_Map[“a”] i;//索引a对应的值是i
map中的count()函数 返回索引出现的次数由于map中索引只出现一次所以返回只会是0或1.
a[i],其实提供了一个i到a[i]的映射
map中的count()函数能够判断键是否出现过同时map中的键和值也能够拥有其原本的意义。
但是用数组就有了局限性因为如果把a[i]当成一个i到a[i]的映射那么无法判断a[i]是否出现过。所以说一个数组作为映射的话比map作为映射表示的内涵要少。
2.2思路
给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数。
也就是说在数组里有两个数a和target-a需要输出他们的下标。
解决的思路
通过map建立一个数和下标的映射。然后扫描数组判断数nums[i]所对应的target-nums[i]是否在map中。如果找到那么读出键对应的值也就是数的下标。如果没找到把这个数和它的下标存在map里。
2.3代码c
class Solution {
public:vectorint twoSum(vectorint nums, int target) {mapint,int a;//提供一对一的hashvectorint b(2,-1);//用来承载结果初始化一个大小为2值为-1的容器bfor(int i0;inums.size();i){if(a.count(target-nums[i])0)//如果找到一个数是target-nums[i]{b[1]i;b[0]a[target-nums[i]];//读出它对应的下标break;}a[nums[i]]i;//把这个数和它的下标存在map里}return b;};
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915349.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!