题解 | #两数之和#

两数之和

http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

import java.util.*;


public class Solution {
    /**
     * 
     * @param numbers int整型一维数组 
     * @param target int整型 
     * @return int整型一维数组
     */
    public int[] twoSum (int[] numbers, int target) {
        // write code here
      	//使用HashMap 数组的值作为key 数组下标作为value
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
      	//遍历数组
        for(int i=0;i<numbers.length;i++){
          	//因为 target=numbers[i]+(target-numbers[i])
          	//所以我们在知道numbers[i]的情况下 
            //查找map里面是否存在 target-numbers[i]的key即可
            if(map.containsKey(target-numbers[i])){
                return new int[]{map.get(target-numbers[i])+1,i+1};
            }
          	//没找到就put进map里面 用于后面的判断
            map.put(numbers[i],i);
        }
        return new int[0];
    }
}
全部评论

相关推荐

10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务