1.首先想到的方法就是两个for循环全部遍历,代码如下,可通过,但效率太低

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

2.使用unordered_map,遍历vector中每个元素,并在hash表中通过find()查找目标元素,若找到则写入结果,否则将当前元素加入到hash表中。(每次调用find()函数是为了判断当前元素与其前面的元素之和是否为target值)。

 class Solution
{
public:
vector<int> twoSum(vector<int> nums, int target)
{
unordered_map<int,int> hash;
vector<int> res;
for (int i = ; i < nums.size(); i++)
{
int numTofind = target - nums[i]; if(hash.find(numTofind) != hash.end())
{
res.push_back(hash[numTofind]);
res.push_back(i);
}
else
{
hash[nums[i]] = i;
}
}
return res;
} };

[Leetcode] 1.Two Sum(unordered_map)的更多相关文章

  1. leetcode 1 Two Sum(查找)

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  2. 「LeetCode」0001-Two Sum(Ruby)

    题意与分析 题意直接给出来了:给定一个数,返回数组中和为该数(下为\(x\))的两个数的下标. 这里有一个显然的\(O(n)\)的实现:建立一个hash表,每次读入数(记作\(p\))的时候查询has ...

  3. LeetCode 1 Two Sum(二分法)

    题目来源:https://leetcode.com/problems/two-sum/ Given an array of integers, find two numbers such that t ...

  4. LeetCode 1. Two Sum (JavaScript)

    1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...

  5. leetcode 之 two sum (easy)c++

    1.数组的长度 length() .容器vector长度  size() .容器vector vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. ...

  6. Leetcode之深度优先搜索(DFS)专题-129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)

    Leetcode之深度优先搜索(DFS)专题-129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers) 深度优先搜索的解题详细介绍,点击 给定一个二叉树,它的每个结点都存放 ...

  7. Leetcode之深度优先搜索(DFS)专题-494. 目标和(Target Sum)

    Leetcode之深度优先搜索(DFS)专题-494. 目标和(Target Sum) 深度优先搜索的解题详细介绍,点击 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S.现在 ...

  8. Leetcode之深度优先搜索(DFS)专题-690. 员工的重要性(Employee Importance)

    Leetcode之深度优先搜索(DFS)专题-690. 员工的重要性(Employee Importance) 深度优先搜索的解题详细介绍,点击 给定一个保存员工信息的数据结构,它包含了员工唯一的id ...

  9. Leetcode之深度优先搜索(DFS)专题-695. 岛屿的最大面积(Max Area of Island)

    Leetcode之深度优先搜索(DFS)专题-695. 岛屿的最大面积(Max Area of Island) 深度优先搜索的解题详细介绍,点击 给定一个包含了一些 0 和 1的非空二维数组 grid ...

随机推荐

  1. linux动态链接库

    前言 静态链接库会编译进可执行文件,并被加载到内存,会造成空间浪费 静态链接库对程序的更新.部署.发布带来麻烦.如果静态库更新了,使用它的应用程序都需要重新编译.发布给用户(对于玩家来说,可能是一个很 ...

  2. HDU3394 点双连通分量

    Railway Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. C# 面试题 (二)

    1. 什么是C#? C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.C#是一种安全的.稳定的.简单的.优雅的,由C和C++衍生出来的面向对象的编程语言. ...

  4. sublime_text3常用操作与快捷键

    1.编辑多列 按鼠标滚轮进行多列选中 键盘ctrl+alt+↓进行多行选中操作 2.快捷键 ctrl+H:替换(F为经典的搜索) ctrl+G:跳到指定行 ctrl+D:选词,连续按选中下面匹配的词, ...

  5. 【caffe范例详解】 - 1.Classification分类

    1. 安装 首先,导入numpy和matplotlib库 # numpy是常用的科学计算库,matplot是常用的绘图库 import numpy as np import matplotlib.py ...

  6. 06003_redis在Linux上的安装

    1.redis-3.0.0.tar.gz下载链接:redis-3.0.0.tar.gz下载 密码:wpbu 2.安装redis编译的c环境,yum install gcc-c++ : 3.将redis ...

  7. 说说NSCache优于NSDictionary的几点

    1.NSCache可以提供自动删减缓存功能,而且保证线程安全,与字典不同,不会拷贝键.2.NSCache可以设置缓存上限,限制对象个数和总缓存开销.定义了删除缓存对象的时机.这个机制只对NSCache ...

  8. 【二】H.264/MPEG-4 Part 10 White Paper 翻译之 Prediction of Intra Macroblocks

    翻译版权所有,转载请注明出处~ xzrch@2018.09.14 ------------------------------------------------------------------- ...

  9. 使用gitlab时候 fork仓库不会实时从主仓库更新解决方案

    付费用户可以使用现成的方案,地址见 链接 但是私有gitlab时候,需要手动进行如下操作 1. Clone your fork: git clone git@github.com:YOUR-USERN ...

  10. Java enum类型笔记

    用途: 定义命令行参数,菜单选项,星期,方向(东西南北)等 与普通类的不同 有默认的方法 value() 每个enum类都已默认继承java.lang.Enum,所以enum类不能继承其他类 构造方法 ...