当前位置:网站首页>每日一题-寻找两个正序数组的中位数-0713
每日一题-寻找两个正序数组的中位数-0713
2022-08-05 05:17:00 【菜鸡程序媛】
题目:
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n)) 。
这个题,目前还不是很理解,为了速度,先背了…
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
if(nums1.length > nums2.length)
return findMedianSortedArrays(nums2, nums1);
int m = nums1.length;
int n = nums2.length;
int left = 0, right = m;
int mid1 = 0, mid2 = 0;
while(left <= right){
int i = (left + right) / 2;
int j = (m + n + 1) / 2 - i;
int nums_im1 = i == 0 ? Integer.MIN_VALUE : nums1[i - 1];
int nums_i = i == m ? Integer.MAX_VALUE : nums1[i];
int nums_jm1 = j == 0 ? Integer.MIN_VALUE : nums2[j - 1];
int nums_j = j == n ? Integer.MAX_VALUE : nums2[j];
if(nums_im1 < nums_j){
mid1 = Math.max(nums_im1, nums_jm1);
mid2 = Math.min(nums_i, nums_j);
left = left + 1;
}else{
right = right - 1;
}
}
return (m + n) % 2 == 0 ? (mid1 + mid2) / 2.0 : mid1;
}
}
边栏推荐
猜你喜欢
随机推荐
【nodejs】第一章:nodejs架构
八、请求处理之自定义类型参数绑定原理
吞吐?带宽?傻傻分不清楚
CVPR 2022 | 70% memory savings, 2x faster training
网工必用神器:网络排查工具MTR
每日一题-最长有效括号-0724
每日一题-单调栈
常见的 PoE 错误和解决方案
用GAN的方法来进行图片匹配!休斯顿大学提出用于文本图像匹配的对抗表示学习,消除模态差异!
每日一题-两数相加-0711
(oj)原地移除数组中所有的元素val、删除排序数组中的重复项、合并两个有序数组
十一、拦截器运行原理
六、请求处理—获取请求参数系列注解是怎样工作的?
LeetCode刷题之第1024题
电子产品量产工具(2)- 输入系统实现
AIDL detailed explanation
每日一题-电话号码的字母组合-0717
每日一题-下一个排列-0723
【UiPath2022+C#】UiPath变量和参数
常用 crud 的思考和设计







![[Intensive reading of the paper] R-CNN's Bounding box regression problem is detailed](/img/ef/a058ec08bd0a6313e3610a4ebc9685.png)

