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

【hot100-java】【寻找两个正序数组的中位数】

二分查找篇

如果使用之前的两个指针分别遍历再合并的话就已经超过时间复杂度了。。

 

 

 

class Solution {public double findMedianSortedArrays(int[] nums1, int[] nums2) {int m=nums1.length;int n=nums2.length;if(m>n){return findMedianSortedArrays(nums2,nums1);}int totalLeft=(m+n+1)/2;int left=0;int right=m;while(left<right){int i=(left+right+1)/2;int j=totalLeft-i;if(nums1[i-1]<=nums2[j]){left=i;}else{right=i-1;}}int i=left;int j=totalLeft-i;int nums1LeftMax=i==0?Integer.MIN_VALUE:nums1[i-1];int nums2LeftMax=j==0?Integer.MIN_VALUE:nums2[j-1];int nums1RightMin=i==m?Integer.MAX_VALUE:nums1[i];int nums2RightMin=j==n?Integer.MAX_VALUE:nums2[j];if((m+n)%2==1){return Math.max(nums1LeftMax,nums2LeftMax);}else{return (Math.max(nums1LeftMax,nums2LeftMax)+Math.min(nums1RightMin,nums2RightMin))/2.0;}}
}

 

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

相关文章:

  • C++七种异常处理
  • 【C语言系统编程】【第三部分:网络编程】3.3 实践与案例分析
  • Unity3D播放GIF图片 插件播放
  • 基于STM32的远程工业控制系统架构设计:MQTT通信、React界面与FreeRTOS优化的综合应用
  • 墙绘艺术在线交易平台:SpringBoot技术详解
  • VMware中Ubuntu系统Docker正常运行但网络不通(已解决)
  • 【web安全】——文件包含漏洞
  • 游戏如何对抗改包
  • 12.梯度下降法的具体解析——举足轻重的模型优化算法
  • GPT对话知识库——C、C++,还有Java,他们之间有什么区别
  • 华为GaussDB数据库之Yukon安装与使用
  • Linux命令:用于显示 Linux 发行版信息的命令行工具lsb_release详解
  • sbb-classes 元素
  • (作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第3关Git 基础知识
  • 12.数据结构和算法-栈和队列的定义和特点
  • 15分钟学 Python 第34天 :小项目-个人博客网站
  • 从零开始实现RPC框架---------项目介绍及环境准备
  • 论文阅读:PET/CT Cross-modal medical image fusion of lung tumors based on DCIF-GAN
  • java基础 day1
  • cpp,git,unity学习
  • HTML增加文本复制模块(使用户快速复制内容到剪贴板)
  • Spring Cloud面试题收集
  • 观测云对接 SkyWalking 最佳实践
  • AI少女/HS2甜心选择2 仿天刀人物卡全合集打包
  • MISC - 第11天(练习)
  • [3.4]【机器人运动学MATLAB实战分析】PUMA560机器人逆运动学MATLAB计算
  • centos常用知识和命令
  • 基于yolov8调用本地摄像头并将读取的信息传入jsonl中
  • Linux中的进程间通信之管道
  • 【Vue】vue2项目打包后部署刷新404,配置publicPath ./ 不生效问题