1 Star 0 Fork 0

唐梓迅/leetcode题解

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
.LeetCode 4 1017 Bytes
一键复制 编辑 原始数据 按行查看 历史
唐梓迅 提交于 2022-11-18 18:51 +08:00 . 寻找两个正序数组的中位数
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
if(nums1.size() > nums2.size())
return findMedianSortedArrays(nums2,nums1);
int m = nums1.size();
int n = nums2.size();
int left = 0;
int right = m;
int me1 = 0;
int me2 = 0;
while(left <= right)
{
int i = (left+right)/2;
int j =(m+n+1)/2-i;
int n1min = (i == 0 ? INT_MIN : nums1[i-1]);
int n1i = (i == m ? INT_MAX : nums1[i]);
int n2min = (j == 0 ? INT_MIN : nums2[j-1]);
int n2j = (j == n ? INT_MAX : nums2[j]);
if(n1min <= n2j)
{
me1 = max(n1min,n2min);
me2 = min(n1i,n2j);
left = i+1;
}
else
{
right = i-1;
}
}
return (m+n)%2 == 0 ? (me1+me2)/2.0 : me1;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/Tang-CMer/leetcode-problem-solving.git
git@gitee.com:Tang-CMer/leetcode-problem-solving.git
Tang-CMer
leetcode-problem-solving
leetcode题解
master

搜索帮助