题解 | #两数之和#

两数之和

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

import java.util.*;

public class Solution {

public int[] twoSum (int[] numbers, int target) {
    // write code here
    // 哈希法
    Map<Integer,Integer> map = new HashMap<Integer,Integer>();
    //因为已知numbers的长度最小是2,所以可直接添加第一个
    map.put(numbers[0],1);
    for(int i=1;i<numbers.length;++i){
        /*
            判断target-numbers[i]是否存在于map中
            存在执行return语句;
            不存在则添加(numbers[i],i+1)到map中,进入下一个
        */
        if(map.containsKey(target-numbers[i]))
            return new int[]{map.get(target-numbers[i]),i+1};
        map.put(numbers[i],i+1);
    }
    return new int[0];
}

}

阿勇算法解集 文章被收录于专栏

对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-30 18:19
点赞 评论 收藏
分享
06-16 15:04
黑龙江大学 Java
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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