美文网首页
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