1
- int findKth (int * nums1 , int m , int i , int * nums2 , int n , int j , int k ) {
2
- if (i >= m )
3
- return nums2 [j + k - 1 ];
4
- if (j >= n )
5
- return nums1 [i + k - 1 ];
6
- if (k == 1 )
7
- return nums1 [i ] < nums2 [j ] ? nums1 [i ] : nums2 [j ];
1
+ int findKth (int * nums1 , int m , int i , int * nums2 , int n , int j , int k ) {
2
+ if (i >= m )
3
+ return nums2 [j + k - 1 ];
4
+ if (j >= n )
5
+ return nums1 [i + k - 1 ];
6
+ if (k == 1 )
7
+ return nums1 [i ] < nums2 [j ] ? nums1 [i ] : nums2 [j ];
8
8
9
- int p = k / 2 ;
9
+ int p = k / 2 ;
10
10
11
- int x = (i + p - 1 < m ) ? nums1 [i + p - 1 ] : INT_MAX ;
12
- int y = (j + p - 1 < n ) ? nums2 [j + p - 1 ] : INT_MAX ;
11
+ int x = (i + p - 1 < m ) ? nums1 [i + p - 1 ] : INT_MAX ;
12
+ int y = (j + p - 1 < n ) ? nums2 [j + p - 1 ] : INT_MAX ;
13
13
14
- if (x < y )
15
- return findKth (nums1 , m , i + p , nums2 , n , j , k - p );
16
- else
17
- return findKth (nums1 , m , i , nums2 , n , j + p , k - p );
14
+ if (x < y )
15
+ return findKth (nums1 , m , i + p , nums2 , n , j , k - p );
16
+ else
17
+ return findKth (nums1 , m , i , nums2 , n , j + p , k - p );
18
18
}
19
19
20
- double findMedianSortedArrays (int * nums1 , int m , int * nums2 , int n ) {
21
- int total = m + n ;
22
- int a = findKth (nums1 , m , 0 , nums2 , n , 0 , (total + 1 ) / 2 );
23
- int b = findKth (nums1 , m , 0 , nums2 , n , 0 , (total + 2 ) / 2 );
24
- return (a + b ) / 2.0 ;
25
- }
20
+ double findMedianSortedArrays (int * nums1 , int m , int * nums2 , int n ) {
21
+ int total = m + n ;
22
+ int a = findKth (nums1 , m , 0 , nums2 , n , 0 , (total + 1 ) / 2 );
23
+ int b = findKth (nums1 , m , 0 , nums2 , n , 0 , (total + 2 ) / 2 );
24
+ return (a + b ) / 2.0 ;
25
+ }
0 commit comments