LeeCode:两数之和【1】
2024-09-04 16:20:17
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;
}
}
最新文章
- Xamarin.ios 调用接口
- Kafka使用入门教程
- dict内部方法
- 如何屏蔽LOGD\LOGI等打印输出
- easy-ui datagrid
- Conditionals with Omitted Operands (x ? : y)
- 与众不同 windows phone (2) - Control(控件)
- mysql笔记7之数据类型
- composer 安装和修改中国镜像
- Java---实现邮件发送
- io利用率100%问题
- Hi3531 SDK 安装以及升级使用说明
- git总结一、工作中常用基础命令
- axios 发送post请求的时候会发送两次
- mac 电脑下svn
- Android之循环显示图像的Android Gallery组件
- 让网络编程更轻松和有趣 t-io
- VBA文本型数字变成数值
- iOS仿今日头条滑动导航
- BZOJ2588:Count on a tree(主席树)
热门文章
- 解决eclipse中overlaps the location of another project: &#39;xxxx&#39;
- 给UITextField设置头或尾空白
- js从$scope外部调用$scope内部函数,跨js调用非全局函数
- SQL 根据表获取字段字符串
- 什么是gcd
- Ubuntu配置apache2.4配置虚拟主机遇到的问题
- hdu1535——Invitation Cards
- 使用Percona监控插件监控MySQL
- lnmp 环境require(): open_basedir restriction in effect 错误
- 图像处理之基础---傅立叶c实现