给定一个整数数组 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循环遍历

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

此方法的时间复杂度是O(n^2)

经过提示我们可以进一步的改进这个算法,我们可以采用时间换空间的方式,采用哈希表来完成

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

此算法的时间复杂度是O(n),最好的情况下能达到O(1)

leetcode(一)刷题两数之和相关推荐

  1. LeetCode刷题-两数之和(持续更新)

    文章目录 LeetCode 1. Two Sum (两数之和) 题目描述 样例 解题思路一(暴力法) 解题思路二(使用map) 前言:最近业余时间,一直在看LeetCode上面的题,上面有许多好的解题 ...

  2. LeetCode第1题 两数之和(Two Sum)

    文章目录 题目地址 题目描述 代码实现 方法一:暴力法 方法二:两遍哈希表 方法三:一遍哈希表 题目地址 题目地址https://leetcode-cn.com/problems/two-sum/ 题 ...

  3. LeetCode题库第1题 两数之和

    两数之和 LeetCode题库第1题 两数之和 看到题,我就想到了暴力法: public int[] force(int[] nums,int target) {for (int i = 0; i & ...

  4. Leetcode:0002(两数之和)

    LeetCode:0002(两数之和) 题目描述:给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这 ...

  5. leetCode刷题-第二题两数之和

    两数之和 题目连接: 题目链接 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的 ...

  6. 力扣热门100题——两数之和(最全解法)

    1.两数之和 1.问题描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标. 你可以假设每种输入只会对应一 ...

  7. leetcode之Tow Sum两数之和的三种思路

    双重循环.桶排序.HashMap 题目链接:两数之和 1.双重循环,最基本的方法,速度慢O(n^2),但无需新空间. public int[] twoSum(int[] nums, int targe ...

  8. LeetCode(Python)—— 两数之和(简单)

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

  9. 力扣LeetCode算法题第2题-两数之和(二)

    力扣算法题第二题,两数相加算法题: 要求: //给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. //如果,我们将 ...

最新文章

  1. 深入理解Linux软件包的配置、编译与安装
  2. 上证指数30年k线图_技术预判2020:上证指数要突破3500点才会“井喷”
  3. mongodb 存储过程 遍历表数据_mongodb推荐存列表字段还是多条记录?
  4. php中configuration,php configuration
  5. 左对齐杨辉三角python_python实现杨辉三角思路
  6. 如何在从事前端两年,得到20+K的offer
  7. jq 直接调用php文件_PHP性能分析工具,你在用哪一个?
  8. JavaSE----变量、String、运算符、流程控制
  9. 网管软件如何部署?网管常用软件
  10. 操作系统测试题(第1,2单元)
  11. 视频码率、分辨率、帧率的关系
  12. Jenkins | 搭建你第一个Jenkins应用
  13. 双光耦开关电源电路图_开关电源电路图及原理讲解
  14. 信奥赛1990:【19CSPS提高组】划分 解题报告(附ac主代码)
  15. 搭建owncloud私有云
  16. kubectl源码分析之rollout status
  17. linux dd销毁数据,dd命令详解(清除硬盘数据)
  18. 二手平台android界面,Android二手书交易app设计(2)启动图Activity
  19. K8S StatefulSet方式部署elasticsearch集群 —— 筑梦之路
  20. 通过SendGrid进行邮件的发送【Java】

热门文章

  1. UML学习(一)-----用例图
  2. PL/SQL 08 异常 exception
  3. js深入研究之Person类案例
  4. 充实的日子里忙忙碌碌
  5. cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
  6. 高级cmd攻击命令_一步一步学习DVWA渗透测试(Command Injection命令行注入)-第七次课...
  7. 求数的绝对值一定是正数_人教版初中数学七年级上册绝对值公开课优质课课件教案视频...
  8. linux基本命令du,Linux常用操作命令汇总
  9. python模拟密码有效性检测功能_检查密码有效性(Django/Python)
  10. springboot2 使用hikaridatasource 并测试_基于Spring Boot 2.x的后端管理网站脚手,源码免费分享...