Amazon | OA 2019 | Find Pair With Given Sum

link

Two Sum: HashMap

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
class Solution {
static int[] Find2Sum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
int max = Integer.MIN_VALUE;
int[] res = new int[2];
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(nums[i])) {
if (nums[i] > max || target-nums[i] > max) {
res[0] = map.get(nums[i]);
res[1] = i;
max = Math.max(nums[i], target-nums[i]);
}
}
map.put(target - nums[i], i);
}
return res;
}
}
/*
public class MyClass {
public static void main(String[] args) {
int[] nums1 = { 1, 10, 25, 35, 60 };
int target1 = 90;
System.out.println(Arrays.toString(Solution.Find2Sum(nums1, target1 - 30)));
int[] nums2 = { 20, 50, 40, 25, 30, 10 };
int target2 = 90;
System.out.println(Arrays.toString(Solution.Find2Sum(nums2, target2 - 30)));
int[] nums3 = { 50, 20, 10, 40, 25, 30 };
int target3 = 90;
System.out.println(Arrays.toString(Solution.Find2Sum(nums3, target3 - 30)));
int[] nums4 = { 1, 2 };
int target4 = 90;
System.out.println(Arrays.toString(Solution.Find2Sum(nums4, target4 - 30)));
}
}*、

0%