forked from bhaveshlohana/HacktoberFest2020-Contributions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMedian of Array.java
68 lines (53 loc) · 1.25 KB
/
Median of Array.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//There are two sorted arrays
//nums1 and nums2 of size m and n respectively.
//Find the median of the two sorted arrays.
//The overall run time complexity should be O(log (m+n)).
//You may assume nums1 and nums2 cannot be both empty.
public class median_of_two_sorted_Arrays {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums1 = { 1, 3 };
int[] nums2 = { 2 };
double med = median(nums1, nums2);
System.out.println(med);
}
private static double median(int[] nums1, int[] nums2) {
double med = 0;
int size = nums1.length + nums2.length;
int[] ans = new int[size];
int i = 0;
int j = 0;
int k = 0;
while (i < nums1.length && j < nums2.length) {
if (nums1[i] < nums2[j]) {
ans[k] = nums1[i];
k++;
i++;
} else if (nums1[i] == nums2[j]) {
ans[k] = nums1[i];
k++;
i++;
ans[k] = nums2[j];
k++;
j++;
} else {
ans[k] = nums2[j];
k++;
j++;
}
}
System.out.println(size);
int idx = size / 2;
if (size % 2 == 0) {
System.out.println("hi");
med = (ans[idx] + ans[idx + 1]) / 2;
} else {
System.out.println("bye");
System.out.println(med = (ans[idx]) / 2);
}
for (int l : ans) {
System.out.print(l + " ");
}
return med;
}
}