当前位置:网站首页>1、两数之和(哈希表)
1、两数之和(哈希表)
2022-04-23 10:11:00 【Popuessing's Jersey】
题目:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
方法:哈希表法
思路:哈希表是以空间换时间的方法,倘若使用暴力解法,则时间复杂度是O(n^2),转而用哈希表的话时间复杂度缩小到了O(n),遍历一次就完成了任务
import java.util.HashMap;
import java.util.Map;
public class Liangshuxiangjia {
public int[] twoSum(int [] nums,int target){
int [] res = new int[2];
//如果数组为空,返回空数组
if(nums == null || nums.length ==0){
return res;
}
//新建哈希表
Map<Integer,Integer> map = new HashMap<>();
//遍历数组,判断map中是否存在一个值等于target-num[i]
//如果有,返回当前的元素的值,以及target-num[i]
// 如果没有,将target-nums[i]的差值存入集合
for (int i = 0; i <nums.length; i++) {
int temp = target-nums[i];
if(map.containsKey(temp)){
res[1] = i;
res[0] = map.get(temp);
}
map.put(nums[i],i);
}
return res;
}
public static void main(String[] args) {
int[] nums = {2,5,6,7};
Liangshuxiangjia liangshuxiangjia = new Liangshuxiangjia();
int [] res = liangshuxiangjia.twoSum(nums,9);
for (int x:res) {
System.out.print(x+" ");
}
}
}
输出结果:
0 3
时间复杂度:O(n)
版权声明
本文为[Popuessing's Jersey]所创,转载请带上原文链接,感谢
https://blog.csdn.net/CoCo629vanilla/article/details/121477904
边栏推荐
- Arm debugging (1): two methods to redirect printf to serial port in keil
- DBA常用SQL语句 (5) - Latch 相关
- 【无标题】
- 杰理之更准确地确定异常地址【篇】
- Sim Api User Guide(4)
- Prefix sum of integral function -- Du Jiao sieve
- 1D / 1D dynamic programming learning summary
- Realize data value through streaming data integration (3) - real-time continuous data collection
- Yarn核心参数配置
- Construire neuf capacités de fabrication agile à l'ère métacosmique
猜你喜欢
C language: expression evaluation (integer promotion, arithmetic conversion...)
Juc并发编程09——Condition实现源码分析
构建元宇宙时代敏捷制造的九种能力
深度选择器
Interviewer: let's talk about some commonly used PHP functions. Fortunately, I saw this article before the interview
"Gu Yu series" airdrop
Sim Api User Guide(6)
Career planning and implementation in the era of meta universe
《谷雨系列》空投
Comparative analysis of meta universe from the dimension of knowledge dissemination
随机推荐
解决VMware卸载后再安装出现的问题
从知识传播的维度对比分析元宇宙
JUC concurrent programming 09 -- source code analysis of condition implementation
杰理之栈溢出 stackoverflow 怎么办?【篇】
Sim Api User Guide(8)
[codeforces - 208e] blood cousins
art-template 模板引擎
通过流式数据集成实现数据价值(5)- 流分析
Windows安装redis并将redis设置成服务开机自启
GCD of p2257 YY (Mobius inversion)
Configuration of LNMP
Sim Api User Guide(5)
Computer network security experiment II DNS protocol vulnerability utilization experiment
Ansible playbook syntax and format automate cloud computing
PHP two-dimensional array specifies that the elements are added after they are equal, otherwise new
Sim Api User Guide(5)
構建元宇宙時代敏捷制造的九種能力
DBA常用SQL语句(3)- cache、undo、索引和等待事件
2022年上海市安全员C证考试题库及答案
Nvidia最新三维重建技术Instant-ngp初探