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


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

    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("没有找到!!!");
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 刷题之给定一个整数数组 nums 和一个目标值 taget,请你在该数组中找出和为目标值的那 两个 整数 php 获取两个给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 例如给定nums = [2,7,11,15],target = 9 算法-找出数组中两个元素之和等于给定的目标值 2020-07-18:给定一个无序数组和一个目标值,找出数组中两个数之和等于目标值的所有组合,并指出其时间复杂度。 给出一个数组和一个目标值,如果数组中任意两个数字的加和等于目标值,输出这两个位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 给定一个整数数组 nums 和一个目标值 k,请实现一个方法判断 nums 中是否存在某个片段(即若干个相连元素)之和等于 k。要求时间复杂度为 O(n)。 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM