美文网首页
每日两道算法题 - 两数之和

每日两道算法题 - 两数之和

作者: 辉_ace | 来源:发表于2021-12-14 23:20 被阅读0次

问题

给定一个数组和一个目标值,获取相加之合为目标值的数组中两个元素的下标并输出。
输入:nums = [2,7,11,15], target = 9
输出:[0,1]

思路

1)通过哈希表记录数据,key为元素值,value为该元素在数组中的下标,以便于后续获取。
2)遍历数组,判断目标值减去当前元素值是否为null。
3)如果不为null,代表map中存在与当前元素值相加等于目标值的元素。,则返回当前元素下标 与 map中对应key的value值。
4)如果不为null,代表map中不存在与当前元素值相加等于目标值的元素,则将当前元素值做为key,下标作为value,放入map中。

实现

public class TwoSum {

    public static void main(String[] args) {

        int[] nums = new int[]{2,7,11,15};
        int target = 9;
        int[] result = twoSum(nums,target);
        System.out.println(Arrays.toString(result));
    }

    private static int[] twoSum(int[] nums, int target) {
        /**
         * 定义一个map用于存放数据   key为元素值,value为元素下标
         * 遍历数组
         * 如果map.get(target-nums[i]) != null. 代表该值存在,则返回数组[nums[i],map.get(target-nums[i])]
         * 否则,将当前遍历得到的值放入map中
         */
        Map<Integer,Integer> map = new HashMap<>(16);
        for (int i=0;i<nums.length;i++){
            if (map.get(target-nums[i]) != null){
                return new int[]{i,map.get(target-nums[i])};
            }
            map.put(nums[i],i);
        }
        return new int[]{0};

    }
}
image.png

相关文章

  • 每日两道算法题 - 两数之和

    问题 给定一个数组和一个目标值,获取相加之合为目标值的数组中两个元素的下标并输出。输入:nums = [2,7,1...

  • 每日算法(两数之和、两数相加)-11.12

    今天开始记录每天学习一道两道的算法题,由简入难。今天一共学习了两道算法,一道简单一道中等,分别为两数之和、两数相加...

  • ATRS第1周

    ATRS Algorithm算法题: 两数之和 - 力扣 (LeetCode) ``` function twoS...

  • 算法题-两数之和

    题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们...

  • LeetCode算法题,两数之和

    题目出处:https://leetcode-cn.com/problems/two-sum/ 题目描述:给定一个整...

  • 算法题之---《两数之和》

    题目: 给定一个数组和一个目标值target,不考虑重复使用元素,找出数组中和=target的两个元素。 首先,最...

  • 算法刷题-两数之和

    八个Docker的真实应用场景 【编者的话】Flux 7介绍了常用的8个Docker的真实使用场景,分别是简化配置...

  • 两数之和(golang)

    原题:两数之和 关联:两数之和 II - 输入有序数组(golang)两数之和 IV - 输入 BST(golang)

  • 两数之和 II - 输入有序数组(golang)

    原题:两数之和 II - 输入有序数组 关联:两数之和(golang)两数之和 IV - 输入 BST(golan...

  • 「算法」两数之和 & 两数之和 II

    00001 两数之和 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只...

网友评论

      本文标题:每日两道算法题 - 两数之和

      本文链接:https://www.haomeiwen.com/subject/jthufrtx.html