Skip to content

Commit 2189a71

Browse files
committed
Median of Sorted Array
1 parent b7d969d commit 2189a71

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/**
2+
* @author : Piyush Kumar
3+
* Problem Link : https://leetcode.com/problems/median-of-two-sorted-arrays/
4+
*/
5+
6+
class Solution {
7+
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
8+
int[] nums;
9+
double medianValue;
10+
if (nums1.length == 0) {
11+
if ((nums2.length) % 2 != 0) {
12+
medianValue = (double) nums2[((nums2.length + 1) / 2) - 1];
13+
}else {
14+
int mid1 = nums2[(nums2.length / 2)];
15+
int mid2 = nums2[(nums2.length / 2) - 1];
16+
medianValue = ((double) mid1 + (double) mid2)/2;
17+
}
18+
}else if (nums2.length == 0) {
19+
if ((nums1.length) % 2 != 0) {
20+
medianValue = (double) nums1[((nums1.length + 1) / 2) - 1];
21+
}else {
22+
int mid1 = nums1[(nums1.length / 2)];
23+
int mid2 = nums1[(nums1.length / 2) - 1];
24+
medianValue = ((double) mid1 + (double) mid2)/2;
25+
}
26+
}else {
27+
nums = new int[nums1.length + nums2.length];
28+
for (int k=0,i=0,j=0 ; k < nums1.length+nums2.length; k++) {
29+
30+
if (i == -1) {
31+
nums[k] = nums2[j++];
32+
}else if (j == -1) {
33+
nums[k] = nums1[i++];
34+
}else if (nums1[i] <= nums2[j]) {
35+
nums[k] = nums1[i++];
36+
if (i == nums1.length) {
37+
i = -1;
38+
}
39+
}else {
40+
nums[k] = nums2[j++];
41+
if (j == nums2.length) {
42+
j = -1;
43+
}
44+
}
45+
}
46+
if ((nums.length % 2) != 0) {
47+
medianValue = (double) nums[((nums.length + 1) / 2) - 1];
48+
}else {
49+
int mid1 = nums[(nums.length / 2)];
50+
int mid2 = nums[(nums.length / 2) - 1];
51+
medianValue = ((double) mid1 + (double) mid2)/2;
52+
}
53+
}
54+
return medianValue;
55+
}
56+
}
57+

0 commit comments

Comments
 (0)