解题思路:

使用map

注意map.containsKey()

并且不能一开始就遍历加入nums中所有的值,例如:

        for (int i = 0; i < nums.length; i++) {

            map.put(nums[i], i);

            return null;

        }

这样会导致map.containsKey()重复使用同一个值

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();

        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(target - nums[i])) 
                return new int[] { i, map.get(target - nums[i]) };
            else map.put(nums[i], i);
        }
        
        return null;
    }
}

 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部