题解 | #两数之和#

两数之和

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-17 09:06
门头沟学院 Java
8527睿:有些地方感觉不太契合实际啊。简单看看第二个项目那里。 比如canal流式读取数据库日志进行缓存同步那里。可不可以加个消息中间件来确保SQL语句的削峰填谷。一般都是canal+消息中间件 双层鉴权登录那里,描述有点模糊,登录是鉴权的前提唉,后面功能都在说是登录,鉴权没有啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务