LintCode - 两数之和(普通)

版权声明:本文为博主原创文章,未经博主允许不得转载。

难度:容易
要求:

给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。

你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。

注意事项
你可以假设只有一组答案。

样例

给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].

思路

public class Solution {
    /*
     * @param numbers : An array of Integer
     * @param target : target = numbers[index1] + numbers[index2]
     * @return : [index1 + 1, index2 + 1] (index1 < index2)
     */
    public int[] twoSum(int[] numbers, int target) {
        // write your code here
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
        
        for(int i = 0; i < numbers.length; i++){
            Integer result = map.get(numbers[i]);
            if(result != null){
                return new int[]{++result,++i};
            }
            map.put(target - numbers[i],i);
        }
        return new int[0];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数...
    DayDayUpppppp阅读 227评论 0 1
  • 题目 描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需...
    悠扬前奏阅读 502评论 0 0
  • 题目前的数字是对应的lintcode的题目序号 14.二分查找 给定一个排序的整数数组(升序)和一个要查找的整数t...
    mytac阅读 713评论 1 2
  • 今天前辈跟自己分享了一个获取用户在线状态的新方法,这是他在阅读pomelo源码时发现的。这也激起了自己阅读源码的好...
    抓不住的风阅读 1,230评论 0 3
  • 昨天晚上按照惯例给妈妈打电话,一直没人接起。跟哥哥的女儿视频,我问你奶奶在家吗?她说不知道呀(爸妈不跟哥嫂住一起)...
    izhuangzi阅读 180评论 0 0