题目:

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。

示例:


代码:

  • 解法一
class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {//判断两个数组中若有一个数组为空if(nums1==null&&nums2==null) {return 0;}//创建一个新数组 长度为两个数组之和int[] nums = new int[nums1.length + nums2.length];//原数组元素遍历到新数组中for (int i = 0; i < nums1.length; i++) {nums[i] = nums1[i];}for (int i = 0; i < nums2.length; i++) {nums[nums1.length + i] = nums2[i];}//对数组进行排序Arrays.sort(nums);//判断数组个数奇偶 找出中位数if (nums.length % 2 == 0) {return ((nums[nums.length / 2]) + (nums[nums.length / 2 - 1])) / 2.0;} else {return nums[nums.length / 2];}}
}
  • 别人的代码
class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int nums2length = nums2.length;int[] r = new int[nums1.length + nums2length];int index = 0;int j = 0;for (int num : nums1) {while (j < nums2length && num > nums2[j]) {r[index] = nums2[j];j++;index++;}r[index] = num;index++;}for (; j < nums2length; j++) {r[index] = nums2[j];index++;}int mi = r.length / 2;return r.length % 2 == 1 ? r[mi] : (r[mi - 1] + r[mi]) / 2.0;}
}

LeetCode4. 寻找两个有序数组的中位数(java)相关推荐

  1. LeetCode4. 寻找两个有序数组的中位数

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

  2. 分享一道力扣困难题~寻找两个有序数组的中位数(Java)

    目录 解题思路1 具体代码 解题思路2 具体代码 题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 .算法的时间复杂 ...

  3. LeetCode4寻找两个有序数组的中位数(二分查找+分治)

    目录 1.题目 2.分析 3.代码 二分查找:绝大多数二分查找问题利用的是单调性,也有一些例外)或者题目本身蕴含的可以逐渐缩小问题规模的特性解决问题.时间复杂度log级. 分治法的设计思想是:将一个难 ...

  4. 算法--------------------寻找两个有序数组的中位数

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

  5. 两个有序数组的中位数 python_Python寻找两个有序数组的中位数实例详解

    Python寻找两个有序数组的中位数 审题: 1.找出意味着这是一个查找算法题 2.算法复杂度log级别,就是提示你是二分查找 3.二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: ...

  6. 20191016:(leetcode习题)寻找两个有序数组的中位数

    寻找两个有序数组的中位数 题目 大致思路 代码实现 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log( ...

  7. (JS)寻找两个有序数组的中位数

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

  8. Python寻找两个有序数组的中位数

    Python寻找两个有序数组的中位数 审题: 找出意味着这是一个查找算法题 算法复杂度log级别,就是提示你是二分查找 二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: 定理: 有 ...

  9. 力扣寻找两个有序数组的中位数

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

最新文章

  1. centos升级python_CentOS 升级Python3
  2. spoj450 Enormous Input Test
  3. day20 函数闭包与装饰器
  4. 大工18秋计算机应用在线作业,大工18秋《计算机组网技术》在线测试1【标准答案】...
  5. docsify and awesome
  6. java oom dump_JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式
  7. C语言字符串库函数api
  8. python文件读写方法手机_python读取文件—txt文件常用读写操作
  9. HTML+CSS+JS实现 ❤️鼠标悬停性感美女图片特效❤️
  10. 在线图片水印平铺工具
  11. flask连接mysql数据库_Flask与Mysql数据库建立连接
  12. RichContentLabel使用注意
  13. VSCode工具右键单击后无Open In Default Browser选项
  14. 全球各国语言代码缩写与国家对照表
  15. 软件测试第三章课后习题
  16. mysqldump关于--set-gtid-purged=OFF的使用
  17. php 过滤微信符号昵称,PHP方法处理微信昵称特殊符号过滤_后端开发
  18. 七、手把手教你搭建SpringCloudAlibaba之Sentinel实现流量控制
  19. 银行卡卡号归属地汇总
  20. import mysql data to solr4.2.0

热门文章

  1. 修改linux用户密码(passwd)
  2. Linux中网卡未激活解决方案
  3. iphone7计算机隐藏,iphone7十大隐藏功能
  4. HashMap嵌套HashMap
  5. 如何在kernel中得到cpu的电压和频率
  6. widnows ffmpeg下载使用
  7. vue步骤引导插件 vue-intro
  8. JS判断手机端是否安装了某个客户端APP
  9. Nginx配置WS代理
  10. 备战2021成龙电影节的院线电影《 完美情侣 》正式开拍