题解 | #两数之和#

两数之和

https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @param target int整型 
     * @return int整型一维数组
     */
    public int[] twoSum (int[] numbers, int target) {
        // write code here
        Map<Integer , Integer> mem = new HashMap<>();
        
        for(int i = 0 ; i <= numbers.length ; i++){
		  //计算出目标值与当前元素的差值a
            int a = target - numbers[i];
		  //如果mem中已经存在a这个键,并且对应的值不是当前循环的索引i,那么就返回一个包含两个元素的整型数组
            if(mem.containsKey(a) && mem.get(a) != i){
                return new int []{mem.get(a)+1,i+1};
            }else{
			  //否则将当前元素作为键,将当前循环的索引i作为值,存入mem中
                mem.put(numbers[i],i);
            }
        }
	  //如果没有找到符合条件的键值,就返回一个空的整型数组
        return new int[]{};
    }
}

全部评论

相关推荐

迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务