LeetCode4. 寻找两个有序数组的中位数(java)
题目:
给定两个大小为 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)相关推荐
- LeetCode4. 寻找两个有序数组的中位数
4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假 ...
- 分享一道力扣困难题~寻找两个有序数组的中位数(Java)
目录 解题思路1 具体代码 解题思路2 具体代码 题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 .算法的时间复杂 ...
- LeetCode4寻找两个有序数组的中位数(二分查找+分治)
目录 1.题目 2.分析 3.代码 二分查找:绝大多数二分查找问题利用的是单调性,也有一些例外)或者题目本身蕴含的可以逐渐缩小问题规模的特性解决问题.时间复杂度log级. 分治法的设计思想是:将一个难 ...
- 算法--------------------寻找两个有序数组的中位数
题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 num ...
- 两个有序数组的中位数 python_Python寻找两个有序数组的中位数实例详解
Python寻找两个有序数组的中位数 审题: 1.找出意味着这是一个查找算法题 2.算法复杂度log级别,就是提示你是二分查找 3.二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: ...
- 20191016:(leetcode习题)寻找两个有序数组的中位数
寻找两个有序数组的中位数 题目 大致思路 代码实现 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log( ...
- (JS)寻找两个有序数组的中位数
寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...
- Python寻找两个有序数组的中位数
Python寻找两个有序数组的中位数 审题: 找出意味着这是一个查找算法题 算法复杂度log级别,就是提示你是二分查找 二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: 定理: 有 ...
- 力扣寻找两个有序数组的中位数
寻找两个有序数组的中位数 要求 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假 ...
最新文章
- centos升级python_CentOS 升级Python3
- spoj450 Enormous Input Test
- day20 函数闭包与装饰器
- 大工18秋计算机应用在线作业,大工18秋《计算机组网技术》在线测试1【标准答案】...
- docsify and awesome
- java oom dump_JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式
- C语言字符串库函数api
- python文件读写方法手机_python读取文件—txt文件常用读写操作
- HTML+CSS+JS实现 ❤️鼠标悬停性感美女图片特效❤️
- 在线图片水印平铺工具
- flask连接mysql数据库_Flask与Mysql数据库建立连接
- RichContentLabel使用注意
- VSCode工具右键单击后无Open In Default Browser选项
- 全球各国语言代码缩写与国家对照表
- 软件测试第三章课后习题
- mysqldump关于--set-gtid-purged=OFF的使用
- php 过滤微信符号昵称,PHP方法处理微信昵称特殊符号过滤_后端开发
- 七、手把手教你搭建SpringCloudAlibaba之Sentinel实现流量控制
- 银行卡卡号归属地汇总
- import mysql data to solr4.2.0