Skip to content

Commit 7b3c08b

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

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package leet_code
2+
3+
import (
4+
"fmt"
5+
"sort"
6+
"testing"
7+
)
8+
9+
func TestFindMedianSortedArrays(t *testing.T) {
10+
t.Log(findMedianSortedArrays([]int{1, 3}, []int{2}))
11+
}
12+
13+
//寻找两个有序数组的中位数
14+
//中位数,就是数组排序后处于数组最中间的那个元素。
15+
// 说来有些麻烦,如果数组长度是奇数,最中间就是位置为(n+1)/2的那个元素。
16+
// 如果是偶数呢,标准的定义是位置为n/2和位置为n/2+1的两个元素的和除以2的结果,有些复杂。为了解答的方便,我们假设数组长度暂且都为奇数吧。
17+
func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
18+
nums1 = append(nums1, nums2...)
19+
sort.Ints(nums1)
20+
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
25+
} else {
26+
fmt.Println(3, (len(nums1)+1)/2)
27+
v1 = float64(nums1[(len(nums1)+1)/2])
28+
}
29+
fmt.Println(v1)
30+
return v1
31+
}

leet_code/lengthOfLongestSubstring_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ func TestLengthOfLongestSubstring(t *testing.T) {
88
t.Log(lengthOfLongestSubstring("abcdefgafkzwb"))
99
}
1010

11+
//无重复字符的最长子串
1112
func lengthOfLongestSubstring(s string) int {
1213
lastOccurred := make(map[byte]int)
1314
start := 0

0 commit comments

Comments
 (0)