美文网首页
leetcode: Two Sum

leetcode: Two Sum

作者: firststep | 来源:发表于2019-02-27 17:36 被阅读0次

问题:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

初级解决方案:

public int[] twoSum(int[] nums, int target) {
        int []ss = new int[2];;
        for (int i=0;i<nums.length-1;i++) {
            for (int j = i+1;j<nums.length;j++) {
                if (target == (nums[i]+nums[j])) {
                    ss[0] = i;
                    ss[1] = j;
                    return ss;
                }
            }
        }
        return null;

    }

进阶解决方案:

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

在遇到问题的时候首先会直接运用最简单的方法去完成,但是如果可以花点时间想一下也是能够进步的。

相关文章

网友评论

      本文标题:leetcode: Two Sum

      本文链接:https://www.haomeiwen.com/subject/benfuqtx.html