LeetCode Hot 100 --- 两数之和(java)
Posted 小样5411
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Hot 100 --- 两数之和(java)相关的知识,希望对你有一定的参考价值。
题目
最优解法:一遍哈希
最容易想到是暴力破解,两个循环,但时间复杂度O(n2),比较高,这里用HashMap,时间复杂度O(n),空间复杂度O(n)
之前牛客刷过同样的 两数之和,要求返回索引不一样而已
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
for(int i = 0 ; i < nums.length ; i++){
//没有target-nums[i]就直接短路,进行put添加,并且不能下标相等
if(map.containsKey(target-nums[i]) && map.get(target-nums[i]) != i){
return new int[]{i,map.get(target-nums[i])};
}
map.put(nums[i],i);
}
return new int[0];
}
}
以上是关于LeetCode Hot 100 --- 两数之和(java)的主要内容,如果未能解决你的问题,请参考以下文章