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

LeetCode-1两数之和

时间:2019-10-14 14:23:28      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:for   解决问题   equals   div   des   title   就是   util   leetcode   

问题:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

分析:

该题核心是查找,那么和查找有关的,我们优先想到的就是通过hashmap来进行。那么通过hashmap来进行,那么就要选择key-value,首先想到的是数组下标作为key,数组值作为value,但是当我们这样做以后发现是无法解决问题的。那么就颠倒key,value,之后发现问题迎刃而解。

代码:

import java.util.HashMap;
import java.util.Map;

public class Solution {
public int[] twoSum(int[] nums, int target){
Map<Integer,Integer> myMap = new HashMap<Integer,Integer>();    //
for(int i=0 ;i<nums.length;i++){
myMap.put(nums[i],i);    //将数组放入hashmap中倒叙存放,因为我们通过target-nums[1]已知的是值,问题要的是下标。
}
for(int i =0;i<nums.length;i++){
int temp = target-nums[i];
if(myMap.containsKey(temp)&&myMap.get(temp)!=i){
return new int[]{i,myMap.get(temp)};
}
}
return null;
}
}

下一级挑战:

三数之和

中等

四数之和

中等

两数之和 II - 输入有序数组

简单

两数之和 III - 数据结构设计

简单

和为K的子数组

中等

两数之和 IV - 输入 BST

简单

小于 K 的两数之和

 

LeetCode-1两数之和

标签:for   解决问题   equals   div   des   title   就是   util   leetcode   

原文地址:https://www.cnblogs.com/gmzqjn/p/11671047.html

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