二つの合計leetcode_1

整数の配列を考えると、彼らは特定のターゲットまで追加するように、2つの数のインデックスを返します。
あなたは、各入力は正確に一つの解決策を持っているであろうと仮定してもよい、とあなたは二度同じ要素を使用することはできません。
例:
考えるNUMSの= [2、7、11、15]、目標= 9、
NUMS [0] + NUMS [1] = 2 = 9 + 7、ので
戻り[0、1]。

ソリューション:

1.暴力:

class Solution {
    public int[] twoSum(int[] nums, int target) {
       int size = nums.length;
        int[] result = new int[2];
        for (int i = 0; i < size; i++) {
            for (int j = i+1; j < size; j++) {
                    if(nums[i]+nums[j]==target) {
                        result[0] = i;
                        result[1] = j;
                    }
            }
        }
        return result; 
    }
}

判定コンテナを作る2.hashMap

class Solution {
    public int[] twoSum(int[] nums, int target) {
       int size = nums.length;
        int[] result = new int[2];
        Map<Integer,Integer> contain = new HashMap<Integer,Integer>();
        for(int i = 0; i<size; i++){
            if(contain.get(target - nums[i]) == null){
                contain.put(nums[i], i);
            } else {
                result[0] = i;
                result[1] = contain.get(target - nums[i]);
            }
        }
        return result; 
    }
}

おすすめ

転載: blog.csdn.net/qq_28929579/article/details/93759258