题目:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。

You may assume that each input would have exactly one solution, and you may not use the same element twice.

您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

解答:

 1 class Solution {
 2     public int[] twoSum(int[] nums, int target) {
 3         int[] res=new int[2];
 4         HashMap<Integer,Integer> map=new HashMap<>();
 5         for(int i=0;i<nums.length;i++){
 6             if(map.containsKey(target-nums[i])){
 7                 res[0]=i;
 8                 res[1]=map.get(target-nums[i]);
 9                 break;
10             }
11             map.put(nums[i],i);
12         }
13         return res;
14     }
15 }

详解:

暴力破解时间复杂度为O(n2),舍弃不用

HashMap是常数级的查找效率,只遍历一个数字,另一个数字使用HashMap建立数字和其坐标位置之间的映射,所以时间复杂度为O(n)。

转载于:https://www.cnblogs.com/chanaichao/p/9564644.html

128.Two Sum相关推荐

  1. 为什么处理有序数组比无序数组快?

    本文由 伯乐在线 - Jerry 翻译自 stackoverflow.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. GManNickG 提问: 于某些怪异的原因,下面这段C++代码表现的异乎寻常 ...

  2. 为什么处理排序数组要比处理未排序数组快?

    这是一段C ++代码,显示了一些非常特殊的行为. 出于某些奇怪的原因,奇迹般地对数据进行排序使代码快了将近六倍: #include <algorithm> #include <cti ...

  3. TensorRT(5)-INT8校准原理

    本次讲一下 tensorRT 的 INT8 低精度推理模式.主要参考 GTC 2017,Szymon Migacz 的PPT . 1 Low Precision Inference 现有的深度学习框架 ...

  4. PPS2013校园招聘笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11473405 一.简答题 (1)一位老师有2个推理能力很强的学生,他告诉 ...

  5. C/C++ 指针和数组

    指针和数组基本等价的原因在于指针算术和C/C++内部处理数组的方式. #include <iostream> using namespace std;int main() {double ...

  6. 经典问题之「分支预测」

    问题 来源 :stackoverflow 为什么下面代码排序后累加比不排序快? public static void main(String[] args) {// Generate dataint ...

  7. 我们应该搞清楚分支预测

    分支预测的英文名字是「Branch Prediction」 大家可以在Google上搜索这个关键字,可以看到关于分支预测的很多内容,不过要搞清楚分支预测如何工作的,才是问题的关键. 分支预测对程序的影 ...

  8. 少写点if-else吧,它的效率有多低你知道吗?

    # 干了这碗鸡汤 我要再和生活死磕几年.要么我就毁灭,要么我就注定铸就辉煌.如果有一天,你发现我在平庸面前低了头,请向我开炮. --杰克·凯鲁亚克 if-else涉及到分支预测的概念,关于分支预测上篇 ...

  9. matlab中如何调用gpu进行并行计算_极致安卓-Termux/Aid learning开启WebGL手机GPU并行计算...

    在我的之前的测评中,我利用Termux和Aid Learning测试过基于C/C++的openmp并行程序,基于Java的并行程序,还有基于MPI以及基于Java的分布式集群并行.但是很遗憾,一直无法 ...

最新文章

  1. 南京大学计算机考研机试,2018南大CS考研机试答案
  2. 由 粗 到 精 学 习 LVI-SAM: imageProjection模块
  3. iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
  4. RabbitMQ接触(二)
  5. 数论--中国剩余定理模板
  6. spring-kafka、kafka-client 和springboot的版本对应关系
  7. 记录拷贝:centos安装jdk
  8. 使用色彩追踪和形态学运算得到图像中感兴趣区域
  9. 关于如何修改CSDN中的字体大小和颜色
  10. Linux操作系统中的路由表配置
  11. MySQL主从复制-基于GTID及多线程的复制
  12. nginx部署前端代码 负载均衡
  13. 网站设计| 网站设计模板素材
  14. input类型为number时鼠标滚动出现箭头
  15. P2345 [USACO04OPEN]MooFest G 【树状数组】
  16. PPT到WORD的组合图片复制
  17. python template injection_月末总结(python模板注入)
  18. golang runtime.Caller 学习笔记
  19. 虚拟机如何进入PE系统
  20. 电视剧《奋斗》精彩对白节选---(一)

热门文章

  1. easypanel mysql错误_Easypanel v1.6(虚拟主机控制面板)图文使用教程
  2. html一张图片用两种滤镜,HTML图片CSS滤镜—灰度效果
  3. java citymap_Java实现Map集合二级联动
  4. 二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...
  5. python Requests登录GitHub
  6. LeetCode 二叉树、N叉树的最大深度与最小深度(递归解)
  7. float.equals_Java Float类equals()方法与示例
  8. kotlin 计算平方_Kotlin程序计算自然数之和
  9. 手动打开和关闭windows的相关服务
  10. spring属性注入的set方法注入