-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1_TwoSum.java
39 lines (35 loc) · 1.27 KB
/
1_TwoSum.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
* Given an array of integers, find two numbers such that they add up to a
* specific target number.
* The function twoSum should return indices of the two numbers such that they
* add up to the target, where index1 must be less than index2. Please note
* that your re * turned answers (both index1 and index2) are not zero-based.
* You may assume that each input would have exactly one solution.
* Input: numbers={2, 7, 11, 15}, target=9
* Output: index1=1, index2=2
*
*/
public class Two_Sum {
public int[] twoSum(int[] numbers, int target) {
int[] res = new int[2];
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();//add parentheses
for(int i=0; i<numbers.length; i++) {
if(map.containsKey(numbers[i])) {
int j = map.get(numbers[i]);
res[0] = j;
res[1] = i + 1;
break;
}
map.put(target - numbers[i], i + 1);
}
return res;
}
public static void main(String[] args){
Two_Sum slt = new Two_Sum();
int[] numbers = {2, 9, 7, 17};
int target = 9;
int[] index = new int[2];
index = slt.twoSum(numbers, target);
System.out.println("index1=" + index[0] + ", index2=" + index[1]);
}
}