NOTE

寻找两个正序数组的中位数

寻找两个正序数组的中位数 的 LeetCode 解题笔记。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

2. 思路

  1. 思路一
    • 先排序,然后取中间值

3. 实现

3.1. 排序

func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
    nums := make([]int, len(nums1)+len(nums2))
    i := 0
    j := 0
    k := 0
    for i < len(nums1) && j < len(nums2) {
        if nums1[i] < nums2[j] {
            nums[k] = nums1[i]
            i++
        } else {
            nums[k] = nums2[j]
            j++
        }
        k++
    }

    for i < len(nums1) {
        nums[k] = nums1[i]
        k++
        i++
    }

    for j < len(nums2) {
        nums[k] = nums2[j]
        k++
        j++
    }

    if len(nums) %2 != 0 {
        return float64(nums[len(nums)/2])
    }else {
        return float64(nums[len(nums)/2-1] + nums[len(nums)/2]) / 2.0
    }
} 

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看