C++怎么实现两个有序数组的中位数
导读:本文共7957字符,通常情况下阅读需要27分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 两个有序数组的中位数Example 1:nums1 = [1, 3]nums2 = [2]The median is 2.0Example 2:nums1 = [1, 2]nums2 = [3, 4]The median is (2 + 3)/2 = 2.5这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为 O(log (m+n)),看到这个时间复杂度,... ...
目录
(为您整理了一些要点),点击可以直达。N Index of L Index of R
1 0 0
2 0 1
3 1 1
4 1 2
5 2 2
6 2 3
7 3 3
(L + R) / 2 = (A[(N - 1) / 2] + A[N / 2]) / 2
[1 3 5 7] -> [# 1 # 3 # 5 # 7 #] N = 4
index 0 1 2 3 4 5 6 7 8 newN = 9
[1 3 4 5 7] -> [# 1 # 3 # 4 # 5 # 7 #] N = 5
index 0 1 2 3 4 5 6 7 8 9 10 newN = 11
[1 3 4 5 7] -> [# 1 # 3 # 4 # 5 # 7 #] N1 = 5
index 0 1 2 3 4 5 6 7 8 9 10 newN1 = 11
[# 1 # 3 # 4 # (5/5) # 7 #]
[# 1 / 2 # 2 # 2 #]
L1 = A1[(C1 - 1) / 2]
R1 = A1[C1 / 2]
L1 = A1[(7 - 1) / 2] = A1[3] = 5
R1 = A1[7 / 2] = A1[3] = 5
L1 <= R1 && L1 <= R2 && L2 <= R1 && L2 <= R2
L1 <= R2 && L2 <= R1
(max(L1, L2) + min(R1, R2)) / 2
C++怎么实现两个有序数组的中位数的详细内容,希望对您有所帮助,信息来源于网络。