首页 > 编程语言 > 详细

算法题一(给定一个整数数组和一个目标值,请你在该数组中找出和为目标值的那两个整数的索引)

时间:2020-01-08 03:00:30      阅读:103      评论:0      收藏:0      [点我收藏+]

之前朋友面试遇到的一道题,说是给定一个整数数组和一个目标值,请你在该数组中找出和为目标值的那两个整数的索引,而且只能用一次循环。当时我就想在遍历的时候保存它的差值,然后和后面的数字作比较。但是内会儿只是有思路,没写出来,今天抽时间用代码实现了,话不多说,直接上代码。

    public static int[] twoSum(int[] arrays, int target) {
        Map<Integer, Integer> map = new HashMap<>();//创建一个map
        for (int i = 0; i < arrays.length; i++) {
            int cha = target-arrays[i];
            if (map.containsKey(cha)){//拿插值和map中的键比较,会返回boolean值
                return new int [] {map.get(cha),i};//如果条件满足,意味着找到数字了,通过get(key)方法获得value。也就是该数字的下标
            }
            map.put(arrays[i],i);//保存到map中,数字作为键,下标作为值
        }

        throw new IllegalArgumentException("没有找到!!!");
    }

算法题一(给定一个整数数组和一个目标值,请你在该数组中找出和为目标值的那两个整数的索引)

原文:https://www.cnblogs.com/super-hu/p/12163798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!