Fork me on GitHub

【数据结构】算法 两数和 Two Sum

两数和 Two Sum

给定一个数组nums,一个target,在nums中寻找一组不重复的组合之和等于target,数组中必然存在一组数满足要求。

in: nums = [2,7,11,15], target = 9
out:[0,1]

思路

借助map,在遍历的过程中寻找map中是否存在target-nums[i]的数据,如果没有的话,就将nums[i]i作为key,value放入map,如果存在,就直接捞出数据返回。

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

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

Tag

Array

posted @ 2021-10-12 17:15  WilliamCui  阅读(57)  评论(0编辑  收藏  举报