Skip to content

Commit 93cbffb

Browse files
author
hero
committed
寻找两个有序数组的中位数
1 parent 7b3c08b commit 93cbffb

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

leet_code/findMedianSortedArrays_test.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,23 @@ import (
77
)
88

99
func TestFindMedianSortedArrays(t *testing.T) {
10-
t.Log(findMedianSortedArrays([]int{1, 3}, []int{2}))
10+
t.Log(findMedianSortedArrays([]int{1, 2}, []int{3, 4}))
1111
}
1212

1313
//寻找两个有序数组的中位数
1414
//中位数,就是数组排序后处于数组最中间的那个元素。
15-
// 说来有些麻烦,如果数组长度是奇数,最中间就是位置为(n+1)/2的那个元素。
15+
// 数数有几个数,加 1,再除以 2
16+
// 如果数组长度是奇数,最中间就是位置为(n+1)/2的那个元素。
1617
// 如果是偶数呢,标准的定义是位置为n/2和位置为n/2+1的两个元素的和除以2的结果,有些复杂。为了解答的方便,我们假设数组长度暂且都为奇数吧。
1718
func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
1819
nums1 = append(nums1, nums2...)
1920
sort.Ints(nums1)
21+
len := len(nums1) + 1
2022
var v1 float64
21-
if len(nums1)%2 == 0 {
22-
fmt.Println(1, len(nums1)/2)
23-
fmt.Println(2, len(nums1)/2+1)
24-
v1 = (float64(nums1[len(nums1)/2]) + float64(nums1[len(nums1)/2+1])) / 2
23+
if (len-1)%2 == 0 {
24+
v1 = (float64(nums1[len/2-1]) + float64(nums1[len/2+1-1])) / 2
2525
} else {
26-
fmt.Println(3, (len(nums1)+1)/2)
27-
v1 = float64(nums1[(len(nums1)+1)/2])
26+
v1 = float64(nums1[(len+1)/2-1])
2827
}
2928
fmt.Println(v1)
3029
return v1

0 commit comments

Comments
 (0)