题解 | #两数之和#

两数之和

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];
}

}

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

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

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务