File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ * @lc app=leetcode id=4 lang=javascript
3+ *
4+ * [4] Median of Two Sorted Arrays
5+ */
6+ /**
7+ * @param {number[] } nums1
8+ * @param {number[] } nums2
9+ * @return {number }
10+ */
11+ function findKth ( nums1 , nums2 , k ) {
12+ if ( nums1 . length === 0 ) return nums2 [ k - 1 ] ;
13+ if ( nums2 . length === 0 ) return nums1 [ k - 1 ] ;
14+ if ( k == 1 ) return Math . min ( nums1 [ 0 ] , nums2 [ 0 ] ) ;
15+ let i = Math . min ( k >> 1 , nums1 . length ) ;
16+ let j = Math . min ( k >> 1 , nums2 . length ) ;
17+ if ( nums1 [ i - 1 ] > nums2 [ j - 1 ] ) {
18+ return findKth ( nums1 , nums2 . slice ( j ) , k - j ) ;
19+ }
20+
21+ return findKth ( nums1 . slice ( i ) , nums2 , k - i ) ;
22+ }
23+ var findMedianSortedArrays = function ( nums1 , nums2 ) {
24+ // 1
25+ // 2 3 4 5
26+ const m = nums1 . length ,
27+ n = nums2 . length ;
28+ return (
29+ ( findKth ( nums1 , nums2 , ( m + n + 1 ) >> 1 ) +
30+ findKth ( nums1 , nums2 , ( m + n + 2 ) >> 1 ) ) /
31+ 2.0
32+ ) ;
33+ } ;
You can’t perform that action at this time.
0 commit comments