#1_两数之和

/*
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
*/

package leetCode;

import java.util.HashMap;
import java.util.Map;


public class A_1_twoSum {

    public static void main(String[] args) {
        int[] nums = {2,7,11,15};
        int target = 9;
        int[] results = twoSum(nums,target);
        for(int i=0;i<results.length;i++) {
            System.out.print(i==0?"["+results[i]:","+results[i]);
        }System.out.println("]");
    }
    

    private static int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<nums.length;i++) {
            int result = target - nums[i];
            if(map.containsKey(result) && map.get(result)!=i) {
                return new int[] {map.get(result),i};
            }
            map.put(nums[i], i);
        }
        throw new IllegalArgumentException("NO TWO SUM SOLUTION");
    }
    
}

learn via https://leetcode-cn.com/articles/two-sum/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,467评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 慕凉川评《麦肯锡笔记思考法》 上次写故事发现在写之前,列好提纲,写得非常快。一点也没有挤牙膏的意思。当我看到《麦肯...
    张泊宁阅读 346评论 2 1
  • abrupt cuts 突然裁剪开支 outline budget plans wiretap 窃听装置 row...
    c花海阅读 97评论 0 0