leetcodeブラシの道1 Two Sum

1165 ワード

整数配列numsとターゲット値targetを指定します.この配列でターゲット値の2つの整数を見つけて、その配列の下付きを返します.
入力ごとに1つの答えしか対応しないと仮定できます.しかし、この配列の同じ要素を繰り返し利用することはできません.
例:
与えられたnums=[2,7,11,15],target=9
nums[0]+nums[1]=2+7=9なので[0,1]を返します
自分の考え:
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result =new int[2];
        for(int i=0;i
HashMapの考え方で:配列の値をkey、シーケンス番号をvalue、ループ配列、配列の値とシーケンス番号をHashMapに入れ、ループ配列の値、配列のHashMapにtarget-nums[i]というキー値があれば、彼のvalueが戻ってくることを記録する
boolean containsKey(Object key):このマッピングに指定キーに対するマッピング関係が含まれている場合、true Vget(Object key)は指定キーにマッピングされた値を返します.V put(K key,V value)は、このマッピングで指定値と指定キーを関連付けます.
class Solution {
    public int[] twoSum(int[] nums, int target) {
     //      
        if(nums == null || nums.length <2){
            return new int[]{-1,-1};
        }
        int [] res = new int[]{-1,-1};
        HashMap map = new HashMap<>();
        for(int i=0;i