Leetcode 1. 两数之和 JAVA哈希法

慈云数据 2024-03-24 技术支持 52 0

LeetCode 1.两数之和 Java

题目

image-20240317222333730

思路(哈希法)

拿nums=[2,7,11,15],target=9 这个来说明

我们先遍历到2这个数,target=9,要想两数之和等于这个target,那么我们需要一个值为 7(9-2)的数。这时候我们就需要到我们的哈希表里去找,看看哈希表里有没有7。有的话我们返回2的index和7的index。如果没有找到7的话,我们把2放到哈希表里。继续遍历nums的下一个数7。

由于我们要返回数组下标。所以我们的哈希表里除了要存储对应的值,还要存它们在nums数组中的下标。所以我们要用HashMap。

再因为我们是根据值到HashMap里查的,所以我们要将值设为key,下标设为value。

注:题目中说的数组中同一个元素在答案里不能重复出现是指:不能自己加自己。

拿nums=[3,2,4] target=6举例

3+3也等于6,这种情况下要是输出下标的话就是[0,0]了,这种情况是不允许的。

代码

IMPort io.swagger.models.auth.In;
import java.util.HashMap;
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map map = new HashMap();
        int[] res = new int[2];
        for (int i = 0; i 
                
                
                
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon