LeeCode:两数之和【1】

题目描述

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

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

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

题目分析

暴力解法

遍历所有数据对,判断是否等于 target,时间复杂度度 O(n^2)。

双索引对撞

先排序后,后使用双索引对撞,时间复杂度为:O(n log n) + O(n) = O(n log n), 可以试一试,也是可以 AC 的。

使用查找表

将所有元素放入查找表,之后对于每一个元素 a,查找 target - a 是否存在

Java题解

public class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int i=0;i<nums.length;i++)
map.put(nums[i],i); int[] result={-1,-1};
for(int i=0;i<nums.length;i++)
{
if(map.containsKey(target-nums[i]))
{
result[0]=i;
result[1]=map.get(target-nums[i]);
if(result[0]!=result[1])
return result;
}
}
return result;
}
}

  

最新文章

  1. Xamarin.ios 调用接口
  2. Kafka使用入门教程
  3. dict内部方法
  4. 如何屏蔽LOGD\LOGI等打印输出
  5. easy-ui datagrid
  6. Conditionals with Omitted Operands (x ? : y)
  7. 与众不同 windows phone (2) - Control(控件)
  8. mysql笔记7之数据类型
  9. composer 安装和修改中国镜像
  10. Java---实现邮件发送
  11. io利用率100%问题
  12. Hi3531 SDK 安装以及升级使用说明
  13. git总结一、工作中常用基础命令
  14. axios 发送post请求的时候会发送两次
  15. mac 电脑下svn
  16. Android之循环显示图像的Android Gallery组件
  17. 让网络编程更轻松和有趣 t-io
  18. VBA文本型数字变成数值
  19. iOS仿今日头条滑动导航
  20. BZOJ2588:Count on a tree(主席树)

热门文章

  1. 解决eclipse中overlaps the location of another project: &#39;xxxx&#39;
  2. 给UITextField设置头或尾空白
  3. js从$scope外部调用$scope内部函数,跨js调用非全局函数
  4. SQL 根据表获取字段字符串
  5. 什么是gcd
  6. Ubuntu配置apache2.4配置虚拟主机遇到的问题
  7. hdu1535——Invitation Cards
  8. 使用Percona监控插件监控MySQL
  9. lnmp 环境require(): open_basedir restriction in effect 错误
  10. 图像处理之基础---傅立叶c实现