-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMedianOfTwoSortedArray.java
More file actions
49 lines (42 loc) · 1.44 KB
/
MedianOfTwoSortedArray.java
File metadata and controls
49 lines (42 loc) · 1.44 KB
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
40
41
42
43
44
45
46
47
48
49
class MedianOfTwoSortedArray {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int [] ans = merge(nums1, nums2);
if (ans.length % 2 == 0){
double ans2 = (double)(ans[ans.length/2] + ans[ans.length/2 - 1]) / 2;
return ans2;
}
else{
double ans2 = (double)(ans[ans.length/2]);
return ans2;
}
}
public int[] merge(int[] arr1, int[] arr2) {
int [] ans = new int[arr1.length + arr2.length];
int p1 = 0;
int p2 = 0;
int p3 = 0;
while (p1 < arr1.length || p2 < arr2.length){
int val1 = (p1 < arr1.length) ? arr1[p1] : Integer.MAX_VALUE;
int val2 = (p2 < arr2.length) ? arr2[p2] : Integer.MAX_VALUE;
if (val1 < val2){
ans[p3] = val1;
p1++;
}
else{
ans[p3] = val2;
p2++;
}
p3++;
}
return ans;
}
public static void main(String[] args) {
MedianOfTwoSortedArray medianFinder = new MedianOfTwoSortedArray();
int[] nums1 = {1, 3};
int[] nums2 = {2};
System.out.println(medianFinder.findMedianSortedArrays(nums1, nums2));
int[] nums3 = {1, 2};
int[] nums4 = {3, 4};
System.out.println(medianFinder.findMedianSortedArrays(nums3, nums4));
}
}