LeetCode-1两数之和

Posted 高鸣泽

tags:

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

问题:

给定一个整数数组 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两数之和的主要内容,如果未能解决你的问题,请参考以下文章

前端与算法 leetcode 1. 两数之和

LeetCode 1两数之和

[算法] LeetCode 1.两数之和

LeetCode——1.两数之和

LeetCode-1. 两数之和(java)

LeetCode ( 1 )---两数之和(Java)