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

力扣第4题 寻找两个正序数组的中位数

力扣第4题

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

算法的时间复杂度应该为 O(log (m+n)) 。

示例 1:

输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2

示例 2:

输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

提示:

  • nums1.length == m
  • nums2.length == n
  • 0 <= m <= 1000
  • 0 <= n <= 1000
  • 1 <= m + n <= 2000
  • -106 <= nums1[i], nums2[i] <= 106
class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        // 定义i j 两个指针来分别指针2个数组 
        // 定义 l  r 分别来保存中位数 ,奇数个只会用到l ,偶数个l , r都会运用到
        int m = nums1.size();
        int n = nums2.size();
        int i = 0 , j = 0 , l = 0 , r = 0 ;
        for(int x = 0 ; x <= ( m + n ) / 2 ; ++x) {
            l = r ;
            r = (i < m && (j >= n || nums1[i] <nums2[j])) ? nums1[i++] : nums2[j++] ;
        }
        return (m + n) & 1 ? r : (l + r) / 2.0; 
    }
};


http://www.kler.cn/a/551897.html

相关文章:

  • 智能体系统(AI Agent System)是什么?——从概念解析到企业数字化转型的全景落地及投资视角
  • DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局Masonry Layout
  • 力扣 hot 100 —— 15.三数之和
  • [数据分享第六弹]红树林数据集
  • OSPF协议五种网络类型中DR和BDR选举说明
  • 高速硬件电路设计
  • FFmpeg 安装详细教程
  • Visual Studio 2022配置网址参考
  • CentOS 7操作系统部署KVM软件和创建虚拟机
  • DeepSeek预测25考研分数线
  • Ubuntu部署deepseek(离线版)
  • ib网络状态探测
  • C++中的.*运算符
  • 认识Vue3
  • MySQL服务端启动问题
  • 苏剑林“闭门造车”之多模态思路浅谈思考
  • 【好玩的Docker项目】使用Docker轻松搭建游戏化编程学习平台
  • 数智读书笔记系列014 MICK《SQL进阶教程》第一版和第二版对比和总结
  • 轻松搭建本地大语言模型(二)Open-WebUI安装与使用
  • 深入解析504网关超时错误:服务器通信故障的诊断与解决