u
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package top100liked
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// https://leetcode.cn/problems/median-of-two-sorted-arrays/?envType=study-plan-v2&envId=top-100-liked
|
||||
|
||||
func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
|
||||
total := len(nums1) + len(nums2)
|
||||
mid := total / 2
|
||||
needAvg := total%2 == 0
|
||||
c1, c2 := 0, 0
|
||||
prev, cur := 0, 0
|
||||
for i := 0; i <= mid; i++ {
|
||||
prev = cur
|
||||
if c1 < len(nums1) && (c2 >= len(nums2) || nums1[c1] <= nums2[c2]) {
|
||||
cur = nums1[c1]
|
||||
c1++
|
||||
} else {
|
||||
cur = nums2[c2]
|
||||
c2++
|
||||
}
|
||||
}
|
||||
if needAvg {
|
||||
return float64(prev+cur) / 2
|
||||
}
|
||||
return float64(cur)
|
||||
}
|
||||
|
||||
func Test(t *testing.T) {
|
||||
// fmt.Println(findMedianSortedArrays([]int{1, 3}, []int{2}))
|
||||
// fmt.Println(findMedianSortedArrays([]int{1, 2}, []int{3, 4}))
|
||||
// fmt.Println(findMedianSortedArrays([]int{}, []int{1}))
|
||||
// fmt.Println(findMedianSortedArrays([]int{}, []int{2, 3}))
|
||||
// fmt.Println(findMedianSortedArrays([]int{1, 2, 3, 4, 5}, []int{6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}))
|
||||
// fmt.Println(findMedianSortedArrays([]int{1, 2}, []int{-1, 3}))
|
||||
fmt.Println(findMedianSortedArrays([]int{2, 2, 2, 2}, []int{2, 2, 2}))
|
||||
}
|
||||
Reference in New Issue
Block a user