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

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

文章目录

  • 题目介绍
  • 题解

题目介绍

在这里插入图片描述

题解

题解链接:题解

核心思路:通过二分查找的确定分割点使左右两部分元素数量相等。

class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int n1 = nums1.length;int n2 = nums2.length;// 确保nums1是较短的数组,以优化二分查找if (n1 > n2) {return findMedianSortedArrays(nums2, nums1);}int k = (n1 + n2 + 1) / 2;int left = 0;int right = n1;while (left < right) {int m1 = (right + left) / 2;int m2 = k - m1;if (nums1[m1] < nums2[m2 - 1]) {left = m1 + 1;} else {right = m1;}}int m1 = left;int m2 = k - m1;// 处理边界情况int c1 = Math.max(m1 <= 0 ? Integer.MIN_VALUE : nums1[m1 - 1],m2 <= 0 ? Integer.MIN_VALUE : nums2[m2 - 1]);if ((n1 + n2) % 2 == 1) {return c1;}int c2 = Math.min(m1 >= n1 ? Integer.MAX_VALUE : nums1[m1],m2 >= n2 ? Integer.MAX_VALUE : nums2[m2]);return (c1 + c2) / 2.0;}
}
http://www.lryc.cn/news/2400776.html

相关文章:

  • 【相机基础知识与物体检测】更新中
  • 【前端】性能优化和分类
  • PPO和GRPO算法
  • ceph 对象存储用户限额满导致无法上传文件
  • rk3588 上运行smolvlm-realtime-webcam,将视频转为文字描述
  • 某航参数逆向及设备指纹分析
  • SQL思路解析:窗口滑动的应用
  • Rust 学习笔记:Box<T>
  • C# 从 ConcurrentDictionary 中取出并移除第一个元素
  • 操作系统学习(十三)——Linux
  • NLP学习路线图(二十二): 循环神经网络(RNN)
  • 每日一C(1)C语言的内存分布
  • Photoshop使用钢笔绘制图形
  • 应用层协议:HTTP
  • 复习——C++
  • SPI通信协议(软件SPI读取W25Q64)
  • PostgreSQL-基于PgSQL17和11版本导出所有的超表建表语句
  • JavaWeb:前后端分离开发-部门管理
  • ArcGIS计算多个栅格数据的平均栅格
  • 字节开源FlowGram:AI时代可视化工作流新利器
  • 如何选择合适的分库分表策略
  • (LeetCode 每日一题)3403. 从盒子中找出字典序最大的字符串 I (贪心+枚举)
  • GPIO的内部结构与功能解析
  • Python训练打卡Day42
  • 深度学习中的负采样
  • php7+mysql5.6单用户中医处方管理系统V1.0
  • Java 大视界 — Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制
  • 智慧物流园区整体解决方案
  • 审批流程管理系统开发记录:layui前端交互的实践
  • 【会员专享数据】1960—2023年我国省市县三级逐年降水量数据(Shp/Excel格式)