思路
- 二层循环遍历(最简单的方法)
时间复杂度o(N2) - 使用hashmap优化 时间复杂度变为o(N)
代码
import java.util.HashMap;
public class Solution {
public static void main(String[] args){
int[] nums = {2, 7, 11, 15};
int target = 9;
Solution so = new Solution();
int[] i=so.twoSum(nums, target);
for(int num:i) {
System.out.print(num+" ");
}
}
public int[] twoSum(int[] nums, int target){
HashMap<Integer, Integer> hashtable = new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++){
if(hashtable.containsKey(target-nums[i])){
return new int[]{hashtable.get(target-nums[i]), i};
}
hashtable.put(nums[i],i);
}
return new int[0];
}
}
运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8b24e02fe9f463fb5736f8370112758.png)