【leetcode】 算法题1 两数之和
问题
  
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
代码实现
#include <vector>
#include <map>
/**
*
*给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
*你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
*case:
*给定 nums = [2, 7, 11, 15], target = 9
*因为 nums[0] + nums[1] = 2 + 7 = 9
*所以返回 [0, 1]
*/
using namespace std;
class Solution {
public:// 两两对比的方式,时间复杂度为O(n2)vector<int> twoSum(vector<int>& nums, int target) {vector<int> ret;// 第一种/*for (int i = 0; i < nums.size(); i++) {for (int j = i + 1; j < nums.size(); j++) {if (nums[i] + nums[j] == target) {ret.push_back(i);ret.push_back(j);return ret;}}}*/// 第二种:数据插入到hashmap里,然后通过target - nums[i]来确定,时间复杂度为O(2n)map<int, int> m;for (int i = 0; i < nums.size(); i++) {m[nums[i]]  = i;}for (int i = 0; i < nums.size(); i++) {if (m.count(target - nums[i]) > 0 && i != m[target - nums[i]]) {ret.push_back(i);ret.push_back(m[target - nums[i]]);return ret;}}return ret;}
};

  

推荐

posted on 2018-05-10 14:29 川山甲 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/baochuan/p/9019465.html

【leetcode】 算法题1 两数之和相关推荐

  1. LeetCode第一题:两数之和(Java)

    文章目录 前言 一.题目内容 二.解题过程 1. 解题思路 2. 解题代码 三.提交结果 总结 前言 坚持下去便可胜利.只要心还在,梦想还在,我们还可以坚持直至胜利.没有过不去的坎,只有害怕的心.莫害 ...

  2. LeetCode简单题之两数之和

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

  3. 学渣的刷题之旅 leetcode刷题 1.两数之和

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

  4. LeetCode简单题之两数之和 IV - 输入 BST

    题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例 1: 输入: root = [5,3,6,2,4,null, ...

  5. leetcode刷题之 两数之和

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

  6. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  7. LeetCode题 - 1 两数之和

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

  8. leetcode 第1题【两数之和】C语言

    leetcode 第1题[两数之和] 今天开始刷 leetcode 了,坚持每天做 因为不太会编程,只是想记录下来,若有错误,欢迎指正. /*** Note: The returned array m ...

  9. Leetcode:0002(两数之和)

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

最新文章

  1. dataframe 按条件删行_根据列值删除Pandas中的DataFrame行
  2. UiBot带你两分钟看懂RPA是什么
  3. 又是找 Bug 的一天! | 每日趣闻
  4. TensorFlow – A Collection of Resources
  5. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
  6. wince 串口调试信息输出
  7. qt中判断对象是否为空的方式
  8. rust里面的awm叫什么_铅笔里面有铅吗?为什么叫铅笔呢?
  9. php 图片文件转base64编码格式,php如何将图片转为base64编码格式
  10. 集成学习:Boosting与Bagging
  11. Centos系统设置
  12. [读论文]三维激光扫描点云数据处理研究进展、挑战与趋势(2017)
  13. Attempt to invoke virtual method 'void android.support.v4.app.Fragment.setNextAnim(int)'
  14. 行人重识别论文阅读8-FastReID京东快速行人重识别
  15. 计算机公式固定数值符号,【2人回答】Excel如何锁定,如何Excel某计算公式中锁定其中一个数值?-3D溜溜网...
  16. c语言 实现markdown解析,marked
  17. 浏览器汇总、可信浏览器
  18. 小王利用计算机设计了一个计算程序,小王利用计算机设计了一个计算程序,输入和输出的数据如下表:那么,当输入数据是8时,输出的数据是[]A.B.C.D.-七年级数学...
  19. MATLAB 学习笔记(3)MATLAB 矩阵的进阶操作
  20. c++ 统计一个一篇英文小说的单词数,从文件读取小说

热门文章

  1. mysql配置文件调优
  2. oracle基础之工具系列(持续更新中,,)
  3. 算法时间复杂度和空间复杂度表示
  4. [公告]博客园新服务器照片
  5. 【正一专栏】再见小马哥——永记你含着泪的笑
  6. 【数据挖掘笔记二】认识数据
  7. Word 技术篇-段落的前后间距单位磅改为行,行改为磅
  8. C# 学习笔记(5) 继承
  9. sdut 2107 DFS
  10. [YTU]_2536( C++ 长方体继承自矩形)