/**
* Created by Ymino on 2019/3/25.
* 給出一個數組,判斷數組裏面的兩個值相加是否等於給出的數 如果是則返回對應的下標
* nums[2,7,9,11] target 9
* 返回 [1,2] (2+7)
* 時間複雜度 O(n) 空間複雜度O(n)
*/
public int[] to_sum(int[] nums,int target){
if (nums == null || nums.length <2){
return new int[]{-1,-1};
}
int res[] = new int[]{-1,-1};
Map<Integer,Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(target-nums[i])){
res[0] = target-nums[i];
res[1] = i;
}
map.put(nums[i],i);
}
return res;
}