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

  • 题目
  • 大致思路
  • 代码实现

题目

  1. 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
  2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
  3. 你可以假设 nums1 和 nums2 不会同时为空。

大致思路

先合并两个数组,再排序,最后根据长度为奇数或偶数来计算中位数即可。

代码实现

package com.immunize.leetcode.findMedianSortedArrays;import java.util.Arrays;/*** 获取两个有序数组的中位数* * @author Mr IMMUNIZE**/
public class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int[] a = new int[nums1.length + nums2.length];int sum = nums1.length + nums2.length;double mid = 0.0d;for (int i = 0; i < nums1.length; i++) {a[i] = nums1[i];}for (int i = 0; i < nums2.length; i++) {a[nums1.length + i] = nums2[i];}Arrays.sort(a);mid = sum % 2 == 1 ? (double) a[sum / 2] : (a[sum / 2 - 1] + a[sum / 2]) / 2;return mid;}
}

20191016:(leetcode习题)寻找两个有序数组的中位数相关推荐

  1. 【LeetCode】寻找两个有序数组的中位数【性质分析+二分】

    给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 ...

  2. leetcode 4. 寻找两个有序数组的中位数,c语言

    leetcode上第四道题,如下. 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假 ...

  3. LeetCode 4. 寻找两个有序数组的中位数(二分查找,难)

    文章目录 1. 题目 2. 解题 2.1 合并数组 2.2 优化2.1解法,双指针 2.3 二分法(找第k个数) 2.4 切分法 1. 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 n ...

  4. [leetcode] 4 寻找两个有序数组的中位数(二分+递归查找第K小数)(重要)

    问题描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 n ...

  5. Leetcode(4)寻找两个有序数组的中位数

    题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 n ...

  6. LeetCode 4.寻找两个有序数组的中位数

    题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 n ...

  7. leetcode 4 --- 寻找两个有序数组的中位数

    1 题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的中位数. 进阶:设计一个时间复杂度为 O(log (m+n)) 的算法. 2 解 ...

  8. [leetcode] 4. 寻找两个有序数组的中位数

    官方题解:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/solution/xun-zhao-liang-ge-you-xu- ...

  9. LeetCode(Python实现)—寻找两个有序数组的中位数

    4.寻找两个有序数组的中位数 题目大意 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). ...

最新文章

  1. 计算机网络-物理层设备
  2. Python 解析配置模块之ConfigParser详解
  3. C#开发学习——web服务器端控件
  4. Linux Shell常用技巧(七)
  5. 动态隐藏ALV的行和列
  6. java 栈和队列实现迷宫代码_LeetCode每日一题--剑指 Offer 09. 用两个栈实现队列(Java)
  7. windows css,CSS (Windows) | Microsoft Docs
  8. excel中空格去不掉java_在Apache POI中跳过空白Excel单元格
  9. html正方形对话框素材,10种展示效果的弹出层对话框插件method.js
  10. mariadb multi-source replication(mariadb多主复制)
  11. 纪念王盘声逝世一周年王派演唱会成功举行
  12. miui8 android.policy,小米MIUI8系统调教记:轻快好省 畅爽静稳
  13. 同一网段两台电脑共享文件
  14. 同一个基站连接两个核心网AMF POOL的场景分析及带AMF重选的注册流程
  15. 大陆人怎么去香港银行开户?
  16. 日元兑人民币用计算机怎么算,日元兑换人民币是以什么计算?谢谢我有日元 – 手机爱问...
  17. lzg_ad:如何构建最小尺寸的XPE镜像文件
  18. 啊哈C——学习3.5一起来找茬
  19. 数据库的安装卸载与使用
  20. 500万相机芯片尺寸_工业CCD相机芯片靶面尺寸的计算

热门文章

  1. 趣谈 JOIN 操作
  2. 还有不会用 SQL 的程序员吗?
  3. 阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军 IoT 这一年 | 问底中国 IT 技术演进
  4. 刚刚,百度宣布王海峰升任 CTO
  5. 2019 Go 开发者路线图,请收下这份指南!
  6. 当我们谈论 996 的时候我们在谈论什么?
  7. 我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的
  8. 2018 区块链技术及应用峰会(BTA)·中国全日程公布!
  9. iOS 11.2 版本紧急修复黑屏 Bug,却遇 FaceID 识别错误,真实原因在此
  10. javaweb实训第四天上午——员工管理系统-JavaBeanELJSTLMVC思想