码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode.1.两数之和

时间:2019-12-04 01:06:53      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:mda   col   格式   return   pre   键值对   提醒   get   题记   

 

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

哈希表的应用问题。

思路:①将数组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.两数之和

标签:mda   col   格式   return   pre   键值对   提醒   get   题记   

原文地址:https://www.cnblogs.com/hdrawery/p/11980455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!