Leet Code OJ 1. Two Sum [Difficulty: Easy]

题目:
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.

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

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

翻译:
给定一个整形数组和一个整数target,返回2个元素的下标,它们满足相加的和为target。
你可以假定:每次输入都会恰好有一个满足条件的返回结果。

(参考别人的解法)
方法一:

    public static int[] twoSum(int[] nums, int target) {

        if(nums == null || nums.length == 0) return null;
        HashMap hashMap = new HashMap<>();
        for(int i = 0; i < nums.length; i++) {
            hashMap.put(nums[i], i);
        }
        int[] result = null;
        for(int j = 0; j < nums.length; j++) {
            int firstNum = nums[j];
            int secondNum = target - firstNum;
            if(hashMap.containsKey(secondNum) && hashMap.get(secondNum) != j) {
                result = new int[2];
                result[0] = j;
                result[1] = hashMap.get(secondNum);
                break;
            }
        }
        return result;      
    }

方法二:

    public static int[] twoSum2(int[] nums, int target) {

        if(nums == null || nums.length == 0) return null;
        int[] result = null;
        for(int i = 0; i < nums.length; i++) {
            for(int j = i+1; j

你可能感兴趣的:(Leet Code OJ 1. Two Sum [Difficulty: Easy])