1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { nums := combine(nums1, nums2) return medianOf(nums) }
func combine(mis, njs []int) []int { lenMis, i := len(mis), 0 lenNjs, j := len(njs), 0 res := make([]int, lenMis+lenNjs)
for k := 0;k < lenMis+lenNjs;n++{ if i == lenMis || (i < lenMis && j < lenNjs && mis[i] > njs[j]) { res[k] = njs[j] j++ continue }
if j == lenNjs || (i < lenMis && j < lenNjs && mis[i] <= njs[j]) { res[k] = mis[i] i++ } }
return res }
func medianOf(nums []int) float64 { l := len(nums)
if l == 0 { panic("error") }
if l%2 == 0 { return float64(nums[l/2]+nums[l/2-1]) / 2.0 }
return float64(nums[l/2]) }
|