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

article/2025/6/7 12:56:54

文章目录

  • 题目介绍
  • 题解

题目介绍

在这里插入图片描述

题解

题解链接:题解

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

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.hkcw.cn/article/sWFwTiMAgu.shtml

相关文章

Windows下将Nginx设置注册安装为服务方法!

一、需求背景 每次启动 Nginx 都要去到 Nginx 安装目录下寻找 nginx.exe 文件点击&#xff0c;很是麻烦。 并且远程登录桌面&#xff0c;有时注销用户&#xff0c;会把在当前用户打开的nginx关闭了。 于是考虑可不可以跟其它服务一样能够开机自启&#xff1f;显然是可以的。…

web第九次课后作业--SpringBoot基于mybatis实现对数据库的操作

前言 在前面我们学习MySQL数据库时&#xff0c;都是利用图形化客户端工具(如&#xff1a;idea、datagrip)&#xff0c;来操作数据库的。 在客户端工具中&#xff0c;编写增删改查的SQL语句&#xff0c;发给MySQL数据库管理系统&#xff0c;由数据库管理系统执行SQL语句并返回执…

SpringBoot+XXL-JOB:高效定时任务管理

一、前言 在现代应用程序中&#xff0c;定时任务是不可或缺的一部分。Spring Boot 和 XXL-Job 为你提供了一个强大的工具组合&#xff0c;以简化任务调度和管理。本文将带领你探索如何将这两者集成在一起&#xff0c;实现高效的定时任务管理。无论你是初学者还是有经验的开发者…

java-spring

入门案例 通过bean创建对象 先通过spring的ClassPathXmlApplicationContext读取xml文件 ,然后通过getbean()函数获取对象&#xff0c;进行操作通过反射机制&#xff0c;吸纳Class的函数forName(class属性)创建对象&#xff0c;然后clazz.getDeclaredConstructor().newinstanc…

springboot @value

#springboot value value 可以读取 yaml 中 的数据

简单爬虫框架实现

1. 框架功能概述 (1) HttpSession 类&#xff1a;请求管理 功能&#xff1a;封装 requests 库&#xff0c;实现带重试机制的 HTTP 请求&#xff08;GET/POST&#xff09;。关键特性&#xff1a; 自动处理 429&#xff08;请求过多&#xff09;、5xx&#xff08;服务器错误&am…

欢乐熊大话蓝牙知识14:用 STM32 或 EFR32 实现 BLE 通信模块:从0到蓝牙,你也能搞!

&#x1f680; 用 STM32 或 EFR32 实现 BLE 通信模块&#xff1a;从0到蓝牙&#xff0c;你也能搞&#xff01; “我能不能自己用 STM32 或 EFR32 实现一个 BLE 模块&#xff1f;” 答案当然是&#xff1a;能&#xff01;还能很帅&#xff01; &#x1f468;‍&#x1f3ed; 前…

网络攻防技术六:拒绝服务攻击

文章目录 一、拒绝服务攻击概述1、按攻击目标分类2、按攻击方式分类3、按受害者类型分类4、按攻击是否直接针对受害者分类5、按属性分类6、按舞厅分类7、按攻击机制分类 二、剧毒包型拒绝服务攻击1、碎片攻击2、Ping of Death攻击(ICMP Bug攻击&#xff09;3、Land攻击4、循环攻…

阿里云无影云桌面深度测评

阿里云无影桌面深度测评&#xff1a;解锁云端工作“新范式”的“未来之钥”&#xff01; 在数字化浪潮席卷全球的2025年&#xff0c;远程办公与混合办公已不再是权宜之计&#xff0c;而是职场不可逆转的新常态。然而&#xff0c;如何确保员工无论身在何处&#xff0c;都能拥有…

R²AIN SUITE AI知识库助力中国制造业数字化转型

一、市场现状&#xff1a;理性增长中的结构性机遇 走进2025年的中国制造业车间&#xff0c;你会看到这样的矛盾图景&#xff1a;一边是机器人手臂精准焊接的火花四溅&#xff0c;另一边是老师傅对着五套不同系统的屏幕皱眉记录数据。这种割裂感正是当前数字化转型深水区的真实…

Java函数式编程(下)

四、实际应用 1. 数据统计分析 示例1&#xff1a;商品订单数据统计分析 package com.itheima.day4.analysis;import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.time.YearMonth; import java.ti…

Java 检查一条线是否与圆接触或相交(Check if a line touches or intersects a circle)

给定一个圆的圆心坐标、半径 > 1 的圆心坐标以及一条直线的方程。任务是检查给定的直线是否与圆相交。有三种可能性&#xff1a; 1、线与圆相交。 2、线与圆相切。 3、线在圆外。 注意&#xff1a;直线的一般方程是 a*x b*y c 0&#xff0c;因此输入中只给出常数 a、b、…

typescript的Interface和Type

类型别名和接口非常相似&#xff0c;在大多数情况下你可以在它们之间自由选择。 几乎所有的 interface 功能都可以在 type 中使用&#xff0c;关键区别在于不能重新开放类型以添加新的属性&#xff0c;而接口始终是可扩展的。 // window.ts.transpileModule(src, {}); 这是调…

(17)课36:窗口函数的例题:例三登录时间与连续三天登录,例四球员的进球时刻连续进球。

&#xff08;89&#xff09;例三登录时间 &#xff1a; 保留代码版本 &#xff1a; CREATE TABLE sql_8( user_id varchar(2), login_date date ); insert into sql_8(user_id,login_date) values(A,2024-09-02),(A,2024-09-03),(A,2024-09-04),(B,2023-11-25),(B,2023-12- 3…

go语言基础|slice入门

slice slice介绍 slice中文叫切片&#xff0c;是go官方提供的一个可变数组&#xff0c;是一个轻量级的数据结构&#xff0c;功能上和c的vector&#xff0c;Java的ArrayList差不多。 slice和数组是有一些区别的&#xff0c;是为了弥补数组的一些不足而诞生的数据结构。最大的…

CodeTop100 Day21

今天这三题是二叉树中简单的题了&#xff0c;但也算是常考题 61、对称二叉树101 class Solution {public boolean isSymmetric(TreeNode root) {return ismirror(root,root);}public boolean ismirror(TreeNode t1,TreeNode t2){if(t1null&&t2null){return true;}if(t…

机器学习——主成分分析(PCA)

一、PCA思想 1.1 PCA定义 PCA&#xff08;Principal Component Analysis&#xff0c;主成分分析&#xff09;是一种统计学方法&#xff0c;用于对数据进行降维处理。它通过线性变换将原始数据转换到一个新的坐标系统中&#xff0c;使得在这个新坐标系下&#xff0c;数据的方差…

ONLYOFFICE 与 LocalAI:在 Ubuntu 上搭建 AI 文档编辑环境

如果你希望在本地 Ubuntu 设备上使用 AI 模型编辑文档、电子表格和演示文稿&#xff0c;ONLYOFFICE 桌面编辑器 与 GPT4ALL 的搭配并不是唯一的选择。 还有另一个本地 AI 平台可供选择。它安装方便&#xff0c;并可以通过 AI 模型处理本地办公文件。这个平台叫做 LocalAI&…

【OCCT+ImGUI系列】011-Poly-Poly_Triangle三角形面片

Poly_Triangle 是什么&#xff1f; Poly_Triangle 是一个非常轻量的类&#xff0c;用于表示一个三角网格中的单个三角形面片。它是构成 Poly_Triangulation&#xff08;三角网格对象&#xff09;的基本单位之一。之后会写关于碰撞检测的相关文章&#xff0c;三角面片是非常重要…

分布式拜占庭容错算法——权益证明(PoS)算法详解

Java 实现权益证明&#xff08;PoS&#xff09;算法详解 一、PoS 核心机制 #mermaid-svg-8VcpJQY92Jtxe9m1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8VcpJQY92Jtxe9m1 .error-icon{fill:#552222;}#mermaid-s…