当前位置: 首页 > news >正文

LeetCode004-两个有序数组的中位数-最优算法代码讲解

最有帮助的视频讲解
【LeetCode004-两个有序数组的中位数-最优算法代码讲解】 https://www.bilibili.com/video/BV1H5411c7oC/?share_source=copy_web&vd_source=afbacdc02063c57e7a2ef256a4db9d2a
时间复杂度 O ( l o g ( m i n ( m , n ) ) ) O(log(min(m,n))) O(log(min(m,n)))
空间复杂度是 S ( 1 ) S(1) S(1)

class Solution {
public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int m = nums1.size() , n = nums2.size();if(m > n){return findMedianSortedArrays(nums2,nums1);}int iMin = 0 , iMax = m;while(iMin <= iMax){int i = iMin + iMax >> 1;int j = (m + n + 1) / 2 - i;//公式if(i != 0 && j != n && nums1[i - 1 ] > nums2[j]){iMax = i - 1;}else if(j != 0 && i != m && nums2[j - 1] > nums1[i]){iMin = i + 1;}else {int maxLf = 0;if(i == 0)maxLf = nums2[j - 1];else if(j == 0)maxLf = nums1[i - 1];elsemaxLf = max(nums1[i - 1],nums2[j - 1]);if((m + n)%2)return maxLf;int maxRg = 0;if(i == m)maxRg = nums2[j];else if(j == n)maxRg = nums1[i];else maxRg = min(nums1[i],nums2[j]);return (maxLf + maxRg) / 2.0;}}return 0.0;}
};

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/440894.html

相关文章:

  • Unity携程Coroutine用法
  • 腾讯百度阿里华为常见算法面试题TOP100(5):子串、堆
  • 「数据科学」清洗数据,真实数据集中缺失值的查看与处理
  • 彩蛋岛 销冠大模型案例
  • 大数据Flink(一百二十一):Flink CDC基本介绍
  • SqlServer自定义类型的使用
  • LeetCode 滑动窗口 滑动子数组的美丽值
  • 【JavaEE初阶】多线程(4)
  • 初识 C++ ( 1 )
  • Python数据分析 Pandas库-初步认识
  • Flutter问题记录 - 适配Xcode 16和iOS 18
  • VMware ESXi 7.0U3q macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025
  • 大数相乘,大数相加
  • Spring Boot配置文件敏感信息加密
  • Java操作数栈分析
  • C#|.net core 基础 - 值传递 vs 引用传递
  • axure的下载,激活,汉化全过程,多图
  • LCR 026
  • 万能小程序运营管理系统 _requestPost 任意文件读取漏洞复现
  • libyuv之linux编译
  • vue3路由基本使用
  • 哪些人适合学习人工智能?
  • 计算机的错误计算(九十七)
  • Flask-Migrate的使用
  • python怎么输入整数
  • 代码随想录打卡Day36
  • 速盾:凡科建站开cdn了吗?
  • python贪吃蛇游戏项目源码【免费】
  • Mycat搭建分库分表
  • Python中的数据结构