1. Two Sum

题目链接:https://leetcode.com/problems/two-sum/

解题思路:

1、这可以用暴力破解,但是会显得很low。

2、所以我们采用HashMap,(key,value),这里的key=nums[i],value等于index。先判断目标值减去当前指针指的这个数是否在这个map中。

比如[2,7,11,15]

当i=0, map为空,肯定不包含这个数,所以把<2,0>放进map

当i=1,判断目标值减当前指针,9-7=2,判断map包不包含key=2这个东西,一看包含的,那么就返回这个res,如果不包含,那么就把<7,1>这个再放进去。

 1 import java.util.ArrayList;
 2 class Solution {
 3     public int[] twoSum(int[] nums, int target) {
 4         
 5         Map<Integer, Integer> has= new HashMap<Integer, Integer>();
 6         int [] res = null;
 7         for(int i=0;i<nums.length;i++)
 8         {
 9             if(has.containsKey(target-nums[i]))
10             {
11                 res= new int[] {has.get(target-nums[i]),i};
12             }
13             else{
14                 has.put(nums[i],i);
15             }
16         }
17         return res;
18         
19     }
20 }
原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10821876.html