Question
Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
Example 1:
Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.
Example 2:
Input: nums1 = [1,2], nums2 = [3,4]
Output: 2.50000
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
Example 3:
Input: nums1 = [0,0], nums2 = [0,0]
Output: 0.00000
Example 4:
Input: nums1 = [], nums2 = [1]
Output: 1.00000
Example 5:
Input: nums1 = [2], nums2 = []
Output: 2.00000
Constraints:
- nums1.length == m
- nums2.length == n
- 0 <= m <= 1000
- 0 <= n <= 1000
- 1 <= m + n <= 2000
- -106 <= nums1[i], nums2[i] <= 106
Let's Go!
Solve by using PREP.
- P - Two parameters. Both are an array of integers (nums1 & nums2).
- R - A number which represents the median of the combined arrays.
- E - Examples provided by question. (See Above)
- P - See Below
var findMedianSortedArrays = function(nums1, nums2) {
// Use Reduce method to combines nums1 & nums2 to single array named data
// Sort array from smallest to largest number
// Return the below
// Conditional if even or odd length data
// If odd grab middle idx of data
// Else even grab middle 2 numbers and divide by 2
};
Translate into code...
var findMedianSortedArrays = function(nums1, nums2) {
// Use Reduce method to combines nums1 & nums2 to single array named data
let data = nums1.reduce((result, num) => {
result.push(num)
return nums2
}, nums2)
// Sort array from smallest to largest number
data.sort((a,b) => a - b)
// Return the below
// Conditional if even or odd length data
// If odd grab middle idx of data
// Else even grab middle 2 numbers and divide by 2
if (data.length % 2 === 0) {
return (data[data.length/2 - 1] + data[data.length/2]) / 2
} else {
return data[data.length / 2 - .5]
}
};
Conclusion
& Remember... Happy coding, friends! =)
Discussion (1)
Intersting challenge and nice explanation buddy π.