0
点赞
收藏
分享

微信扫一扫

【LeetCode刷题100】1.两数之和

前端王祖蓝 2022-03-11 阅读 76

题目描述

在这里插入图片描述

解题思路

  • 读题可理解为在一个数组中找nums[i]=target-nums[j],因为只有一个结果,找到即可。
  • 用哈希表很合适,key存储数值,value存储下标。

Java代码

public class Test01 {
    public static void main(String[] args) {
        int[] arr = {2, 7, 36};
        Test01 test01 = new Test01();
        System.out.println(Arrays.toString(test01.twoSum(arr, 9)));
    }

    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int temp = target - nums[i];
            if (map.containsKey(temp)) {
                res[1] = i;
                res[0] = map.get(temp);
            }
            map.put(nums[i], i);
        }
        return res;
    }
}
举报

相关推荐

0 条评论