问题:给定一个整数数组 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]

思路: 借鉴冒泡排序的思路,即第一个for循环从数组第一个数字开始循环,第二个for循环从当前i所指的下一个数字j开始循环。

代码(暴力):

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int len=nums.size();for(int i=0;i<len;i++){for(int j=i+1;j<len;j++){if(nums[i]+nums[j]==target){return {i,j};} }}return {};}
};

代码(哈希):

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {map<int,int>subscript;for(int i=0;i<nums.size();i++)  //存储每个元素的下标subscript[nums[i]]=i;for(int j=0;j<nums.size();j++)   //当target-nums[j]的差的下标存在,同时不是j的时候,输出相应的下标if(subscript[target-nums[j]]!=0&&subscript[target-nums[j]]!=j)return {j,subscript[target-nums[j]]};return {};}
};

代码(哈希优化版):

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {std::unordered_map<int,int>subscript;for(int i=0;i<nums.size();i++){auto it=subscript.find(target - nums[i]);if (it!= subscript.end()) return {it->second,i}; subscript[nums[i]]=i;}       return {};}
};

C++(Leetcode):两数之和相关推荐

  1. leetcode 两数之和 整数反转 回文数 罗马数字转整数

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  2. leetcode两数之和

    #####两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15 ...

  3. leetcode两数之和,三数之和,四数之和问题

    1. 两数之和 遍历数组的同时,使用字典(哈希表)记录数对应的索引,对于每一个数nums[i],判断 target-nums[i]是否在字典中,找到一个即返回.若列表中的与元素有重复也可这样处理,因为 ...

  4. LeetCode两数之和 56 python

    描述 中文 English 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范 ...

  5. Leetcode——两数之和

    这题有一个很简单的解决办法,就是暴力求解法,跟其他语言是一样的,但是就只是语言的书写形式上不一样. 思路:两层循环遍历,一个值一个值的试,最后找出最终的结果 class Solution(object ...

  6. LeetCode 两数之和

    题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不 ...

  7. [LeetCode] 两数之和

    英文描述 Given an array of integers, return indices of the two numbers such that they add up to a specif ...

  8. LeetCode 两数之和(Two Sum)

    题目 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例 给定 nums = [2, 7, 11, 15], targe ...

  9. leetCode:twoSum 两数之和 【JAVA实现】

    LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...

  10. 【LeetCode】两数之和、三数之和、四数之和系列

    文章目录 两数之和★ 三数之和★★ 四数之和★★ 四数相加Ⅱ★★ 最接近的三数之和★★ 此篇文章总结下力扣中的两数之和.三数之和.四数之和及一系列求数组中满足达到目标值的元组个数的问题,仔细阅读下面的 ...

最新文章

  1. 对抗攻击最新研究:仅修改「一个像素」即可骗过神经网络!
  2. Sql PATINDEX 函数
  3. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究
  4. 如何高效地去调试UGUI的源码
  5. [JDK 11] jcmd中的类加载器层次结构详细信息
  6. C语言 计算日期是当年的第几天
  7. Windows下JetBrains CLion的pthread使用配置
  8. C++基础::自制异常定位器
  9. java 线程安全集合
  10. android studio for android learning (十四) android的数据的存储sharedPreferences
  11. 通过寄生组合式继承创建js的异常类
  12. SpringMVC防止表单重复提交
  13. python基本数据类型
  14. 解决sockscap64测试代理可以,实际应用无法联网的问题
  15. 如何在ANSYS 2022R1版本中使用SCDM
  16. 使用 TF-IDF 算法将文本向量化
  17. 目前机器翻译,发展到哪个阶段了?
  18. 爬取中国最好大学网数据(Python的Scrapy框架与Xpath联合运用)
  19. m3u8及TS文件下载解密:用FFmpeg解密合并m3u8中ts文件(二)
  20. html5在线客服源码 websocket c# socket 实现,可扩展 im 即时通讯 完整的源代码,在线聊天

热门文章

  1. 【Spark】Spark基本概念
  2. 报错日常——Tomcat45秒超时问题
  3. createprocess重启程序_win32取CreateProcess启动程序的返回值
  4. mysql可扩展数据库_五大技巧提高MySQL可扩展性
  5. python assertion failed_PyCharm报错与解决方法一览
  6. Pycharm中设置py文件头部注释信息
  7. 学python要有多少英语词汇量测试_非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!...
  8. export default 打包_贵阳【打包扣】价格
  9. python安装器要删吗_Centos7中,教你在不删除2.7下,安装python3
  10. mpp文件转换excel_原来只要按下这个键,Word、PDF、PPT、Excel文件随你互相转换