[LeetCode Hot 100] LeetCode1. 两数之和

发布时间 2023-12-03 21:34:01作者: Ac_c0mpany丶

题目描述

思路:

  • 如果哈希表存在target-nums[i],则返回索引下标i和对应的key值(可以按任意顺序返回答案)
  • 如果哈希表中不存在target-nums[i],则存入nums[i]和对应的索引值

方法一:哈希表

class Solution {
    public int[] twoSum(int[] nums, int target) {
        // 1. 存放结果集
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i ++) {
            // 2. 如果哈希表存在target-nums[i],则返回索引下标i和对应的key值(可以按任意顺序返回答案)
            if (map.containsKey(target - nums[i])) {
                return new int[]{i, map.get(target - nums[i])};
            }
            // 3. 如果哈希表中不存在target-nums[i],则存入nums[i]和对应的索引值
            map.put(nums[i], i);
        }
        // 如果没有结果,就返回空。
        return new int[]{};
    }
}