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].
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++){
map.put(nums[i],i);
}
int index1=0;
int index2=0;
for(int i=0;i<nums.length;i++){
index1=i;
int find=target-nums[index1];
if(map.get(find)!=null&&map.get(find)!=index1){
index2=map.get(find);
break;
}
}
int[] res=new int[2];
res[0]=index1<index2?index1+1:index2+1;
res[1]=index1>index2?index1+1:index2+1;
return res;
}
}