原文链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/

图示(来源):

double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {if(nums1.size()>nums2.size()){//保证nums1长度小于nums2,否则交换vector<int> tmp=nums2;nums2=nums1;nums1=tmp;}int m=nums1.size();int n=nums2.size();int totalLeft=(m+n+1)/2;//中位线的左半部分int left=0;int right=m;while(left<right){int i=left+(right-left+1)/2;//nums1的中位线索引int j=totalLeft-i;//nums2的中位线索引if(nums1[i-1]>nums2[j]){//如果成立则表示nums1中位线左边的值大于nums2中位线右边的值,需要调整位置right=i-1;}else{left=i;}}int i=left;int j=totalLeft-i;int nums1MaxLeft=i==0?INT_MIN:nums1[i-1];//nums1中位线左边的值int nums1MinRight=i==m?INT_MAX:nums1[i];//nums1中位线右边的值int nums2MaxLeft=j==0?INT_MIN:nums2[j-1];//nums2中位线左边的值int nums2MinRight=j==n?INT_MAX:nums2[j];//nums2中位线右边的值if((m+n)%2){//如果是奇数,直接取中位线左边那个最大的return max(nums1MaxLeft,nums2MaxLeft);}else{//如果是偶数,取中位线两边的数的平均数return ((double)(max(nums1MaxLeft,nums2MaxLeft)+min(nums1MinRight,nums2MinRight)))/2.0;}
}

leetcode算法题--寻找两个有序数组的中位数★★相关推荐

  1. Leetcode算法题:两个有序数组求中位数

    Leetcode算法题:两个有序数组求中位数 要求时间复杂度为O(log(m+n)) 思路: 暴力解决:合并数组并排序,简单且一定能实现,时间复杂度O(m+n) 由于两个数组已经排好序,可一边排序一边 ...

  2. 20191016:(leetcode习题)寻找两个有序数组的中位数

    寻找两个有序数组的中位数 题目 大致思路 代码实现 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log( ...

  3. LeetCode(Python实现)—寻找两个有序数组的中位数

    4.寻找两个有序数组的中位数 题目大意 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). ...

  4. 分享一道力扣困难题~寻找两个有序数组的中位数(Java)

    目录 解题思路1 具体代码 解题思路2 具体代码 题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 .算法的时间复杂 ...

  5. return两个返回值_LeetCode 第四题 寻找两个有序数组的中位数

    给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 ...

  6. LeetCode实战:寻找两个有序数组的中位数

    题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...

  7. leetcode C++ 4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log

    一.概述: 这道题思路其实蛮简单的,就是边界太难考虑了,所以一直没能通过,写了好长的代码考虑边界,然后看到一个大神写的代码: https://leetcode-cn.com/problems/medi ...

  8. leetcode算法题--合并两个有序数组

    原题链接:https://leetcode-cn.com/problems/merge-sorted-array/ 尾部双指针 void merge(vector<int>& nu ...

  9. 算法--------------------寻找两个有序数组的中位数

    题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 num ...

最新文章

  1. spark官方文档_Apache Spark 文档传送门
  2. 读书笔记 - 《21世纪的管理挑战》
  3. C++ 中的左值(Lvalues)和右值(Rvalues)
  4. JAVA中报错AbandonedObjectPool is used (org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool@f70ee1)
  5. (一)Web Service——基本概念
  6. 如何在README中使用图片
  7. linux下svn命令
  8. 剑指offer(C++)-JZ33:二叉搜索树的后序遍历序列(数据结构-树)
  9. Windows下VB6.0开发——关于String类型数据的思考
  10. MySQL 千万级数据SQL的查询优化30条总结
  11. 记录贴,使用PDFviewer时遇到的导入问题
  12. 电子罗盘的工作原理及校准
  13. js md5 加密算法
  14. FYI-django数据库操作-外键
  15. 用计算机绘制函数图像数学大师,用Excel来绘制数学中的函数图像
  16. Java工程师 Java基础面试题集合类(Day06)
  17. 在该系统上全局禁用了虚拟打印功能,不会为该虚拟机启用此功能。虚拟设备“serial0“”将开始断开连接。
  18. 软件测试概念-PIE模型
  19. SRM- Golink体验报告
  20. 修复iPhone X 开机卡白苹果导致无法开机的问题

热门文章

  1. python语言入门n-python语言入门之字符串的一些用法
  2. python 数据分析学什么-利用Python做数据分析 需要学习哪些知识
  3. python笔记基础-Python笔记-基础
  4. python字符串find函数-Python内置的字符串处理函数整理
  5. python装饰器-python装饰器
  6. arcgis python编程案例-面向ArcGIS的Python脚本编程
  7. python语言怎么学-如何从零开始学习Python,python语言编程入门
  8. LeetCode Ugly Number II(丑数的计算)
  9. linux之sed用法 (文本处理工具)
  10. java中的内部接口