leetcode.1.两数之和

Posted hdrawery

tags:

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

 

———————极其个人向的做题记录———————

哈希表的应用问题。

思路:①将数组nums[i]存入哈希表

     ②每次存入的时候查找(target-a[i])是否也在哈希表中且不为nums[i]本身

 

易错提醒:map.get(key)函数是需要key来查找value的,所以考虑到之后要通过(target-a[i])来查找数组对应的索引是否为i本身,在添加键值对的时候,

 

格式应为 "map.put(nums[i],i)”

代码:

public int[] twoSum(int[] nums, int target) {
        HashMap<Integer, Integer> map=new HashMap<>();
        int a[]= {0,0};
        for(int i=0;i<nums.length;i++) {
            int x=target-nums[i];
            if(map.containsKey(x)&&i!=map.get(x)) {//如果存在减数且不为被减数本身
                a[0]=i;
                a[1]=map.get(x);
                break;
            }else {
                map.put(nums[i],i);
            }
        }
        return a;
    }

结论:遇到本质是快速查找或者查重的问题,可以考虑采用哈希表。

 

 

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

LeetCode——1.两数之和

LeetCode 1.两数之和

LeetCode 1.两数之和

LeetCode 1.两数之和

Leetcode 1.两数之和

算法 Notes|LeetCode 1. 两数之和 - easy