1哈希表-两数之和

Posted 孤注一掷 、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1哈希表-两数之和相关的知识,希望对你有一定的参考价值。

题目

链接:1. 两数之和 - 力扣(LeetCode)

思路

使用map的键值对key-value,遍历数组元素,在map中寻找是否有匹配的key,如果没有则加入,如果有的话就将该两个数的下标保存到数组中返回

代码

class Solution 
    public int[] twoSum(int[] nums, int target) 
        int[] res = new int[2];
        if(nums == null || nums.length == 0)
            return res;
        
        Map<Integer,Integer> map = new HashMap<>();
        for(int i = 0; i < nums.length; i++)
            //遍历当前元素,并在map中寻找是否有匹配的key
            int temp = target - nums[i];
            if(map.containsKey(temp))
                res[1] = i;
                res[0] = map.get(temp);
                break;
            
            map.put(nums[i],i);
        
        return res;
    

以上是关于1哈希表-两数之和的主要内容,如果未能解决你的问题,请参考以下文章

漫画 | 什么是散列表(哈希表)?

leetcode.1.两数之和

Leetcode刷题100天—1. 两数之和(数组+哈希表)—day23

Leetcode刷题100天—1. 两数之和(数组+哈希表)—day23

C/C++手撕哈希表详解

1哈希表-两数之和