题解 | #NC61 两数之和#

两数之和

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

HashMap

import java.util.*;

public class Solution {
    //注意,下标值从 1 开始
    public int[] twoSum (int[] numbers, int target) {
        // write code here
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < numbers.length; i++) {
            //map 里面放键为每个数的结果,值为下标
            //每次放入的时候看是否包含( target - 当前值)
            //有的话说明当前值和已包含的值下标的那个元素为需要的结果
            if (map.containsKey(target - numbers[i])) 
                return new int[]{map.get(target - numbers[i]) + 1, i + 1};
            else map.put(numbers[i], i);
        }
       return new int[]{1, 1};
    }
}
全部评论

相关推荐

11-04 10:30
已编辑
门头沟学院 研发工程师
开心小狗🐶:“直接说答案”
点赞 评论 收藏
分享
12-25 16:26
已编辑
河北科技学院 Java
勇敢的牛油不服输:2800-300那不等于2500一个月吗兄弟们
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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