[letecode java]Two Sum
来源:互联网 发布:中国有多少穷人 知乎 编辑:程序博客网 时间:2024/05/29 03:24
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
题目首先想到的就是双层循环,作为一道medium题,无疑会超时。所以要借助一个HashMap,这样一次遍历即可,时间复杂度为o(n),空间复杂度为o(n)。代码如下:
public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] a=new int[2];
Map<Integer, Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++){
if(!map.containsKey(nums[i])){
map.put(nums[i], i);
}
Integer n=map.get(target-nums[i]);
if(n!=null&&n<i){
a[0]=n+1;
a[1]=i+1;
return a;
}
}
return a;
}
}
- [letecode java]Two Sum
- [letecode] Range Sum Query - Immutable
- [letecode java] Maximum Subarray
- [letecode java] Gray Code
- [letecode java] Unique Paths
- [letecode java ] Sort Colors
- [letecode java] Rotate Image
- [letecode Java] Multiply Strings
- [letecode Java] Decode Ways
- [letecode Java] Triangle
- [letecode Java] Surrounded Regions
- [letecode Java] Word Break
- LeetCode: Two Sum (Java)
- [Leetcode] Two Sum (Java)
- Two Sum Java
- 【Leetcode】two sum JAVA
- Two Sum (Java)
- LeetCode java Two Sum
- 网络部分(二)
- Linux 利用 expect 进行 scp 自动同步文件
- ubantu不能上网的几个检查步骤
- 半路出家——Java中的访问权限控制
- Unity3d资源管理分析
- [letecode java]Two Sum
- android BaseAdapter
- 奇异值分解(SVD) --- 几何意义
- lintcode-搜索区间-61
- Android-GridView 实例(异步加载,LruCache缓存,图片请求,图片压缩)
- Linux 教材
- mount: failed, reason given by server: Permission denied
- C++ <int、long、long long 最大及最小值>
- eclipse中的快捷键