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

力扣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.xdnf.cn/news/10916.html

相关文章:

  • isp调试 blend模式指什么
  • VS2022下C++ Boost库安装与使用使用
  • 使用 Python + ExecJS 获取网易云音乐歌曲歌词
  • 01电气设计-380V强电部分设计
  • 前缀和基础训练
  • Docker 镜像(或 Docker 容器)中查找文件命令
  • 5月底 端午节
  • 2024-2025-2-《移动机器人设计与实践》-复习资料-1-7
  • C++语法系列之特殊类设计
  • ​​Agentic Voice Stack 热门项目
  • MySQL连接报SSL错误
  • 【QT】认识QT
  • v4l2常见操作-查看当前摄像头信息,帧率,控制参数,分辨率,支持格式,抓图实践等
  • LangChain核心之Runnable接口底层实现
  • Vue中安装插件的方式
  • [蓝桥杯]路径之谜
  • 快速排序(Quick Sort)算法详解(递归与非递归)
  • 第一章-计算机系统概述深化
  • AI数字人技术革新进行时:井云数字人如何重塑人机交互未来?
  • 瑞幸咖啡香港自营门店增至 12 间 未来或拓展至中环等核心区
  • 问题七、isaacsim中添加IMU传感器
  • one-hot编码VS对象嵌入表示
  • docker创建postgreSql带多个init的sql
  • 工厂模式与多态结合
  • 通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题
  • 【高等数学】(2)函数
  • MongoDB数据库学习
  • 【JS服务器】JETBRAINS IDEs JS服务器使用什么编译JNI
  • Docker或Docker-Compose时间时区配置
  • 【亲测有效 | Cursor Pro每月500次快速请求扩5倍】(Windows版)Cursor中集成interactive-feedback-mcp