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})) }