前言

开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术。

目录

文章目录

  • 前言
  • 目录
  • 正文
  • 问题3:寻找两个有序数组的中位数
  • 举例
  • 分析

正文

继续刷题

问题3:寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。

举例

nums1 = [1,2,3]
nums2 = [2]
则中位数是 2.0

分析

这个问题很难,因为,有时间要求,因此,不能使用暴力破解方法。

class Solution:def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]):n1 = len(nums1)n2 = len(nums2)if n1 > n2:return self.findMedianSortedArrays(nums2,nums1)k = (n1 + n2 + 1)//2left = 0right = n1while left < right :m1 = left +(right - left)//2m2 = k - m1if nums1[m1] < nums2[m2-1]:left = m1 + 1else:right = m1m1 = leftm2 = k - m1 c1 = max(nums1[m1-1] if m1 > 0 else float("-inf"), nums2[m2-1] if m2 > 0 else float("-inf") )if (n1 + n2) % 2 == 1:return c1c2 = min(nums1[m1] if m1 < n1 else float("inf"), nums2[m2] if m2 <n2 else float("inf"))return (c1 + c2) / 2

leetcode刷题实录:4相关推荐

  1. leetcode刷题实录:3

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题3 举例 分析 什么是滑动窗口? 如何移动? 代码 正文 问题3 给定一个字符 ...

  2. leetcode刷题实录:2

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题2 举例 分析 代码 正文 问题2 给出两个 非空 的链表用来表示两个非负的整 ...

  3. leetcode刷题实录:1

    前言 开始刷leetcode,保证平均每天一道题吧,学学别人的思路,提高编程技术. 目录 文章目录 前言 目录 正文 问题1 示例: 解答 正文 问题1 给定一个整数数组 nums 和一个目标值 ta ...

  4. LeetCode刷题Python实录

    使用Python的LeetCode刷题 前言 题目 1408. 数组中的字符串匹配 508. 出现次数最多的子树元素和 1089. 复写零 剑指 Offer 14- I. 剪绳子 1175. 质数排列 ...

  5. LeetCode刷题C++实录

    LeetCode刷题C++实录 1. 两数之和 121. 买卖股票的最佳时机 382. 链表随机节点 622. 设计循环队列 623. 在二叉树中增加一行 640. 求解方程 761. 特殊的二进制序 ...

  6. 华为工程师总结的LeetCode刷题笔记提供下载,太优秀了

    前言: 最近又有不少老铁在后台留言说,想进大厂,但是算法不好.最近我整理了一份刷题实录,这份刷题实录,也让我进了心仪的大厂.现在开放分享给大家.希望对大家有所帮助. 任何的算法题,如同写作文一样,都有 ...

  7. LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)

    LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...

  8. LeetCode刷题记录14——257. Binary Tree Paths(easy)

    LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...

  9. LeetCode刷题记录13——705. Design HashSet(easy)

    LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...

最新文章

  1. bcftools安装
  2. python安装选项_python设置执行选项参数
  3. java File类笔记
  4. iOS - OC Block 代码块
  5. 【转】HashTable 和 HashMap的区别
  6. 全国地铁城市数据分析(python实现)
  7. 【编程语言】Ruby完全自学手册
  8. ubuntu eclipse java_搭建Ubuntu Java Eclipse开发环境
  9. Principles of Reactive Programming 之Actors are Distributed (3)
  10. 计算机图形学开发框架,计算机图形学-基于3d图形开发技术
  11. python 抠图源码_别再自己抠图了,Python用5行代码实现批量抠图
  12. 服务监控(一)之安装Prometheus
  13. 微信获取openid的时候报40163错的原因
  14. 【HDU 4699】Editor【栈】
  15. 独家专访阿里云存储负责人吴结生:我经历的三个重大决策
  16. 【后端】Nginx 体系
  17. java 菜刀_jsp一句话木马菜刀
  18. python读取.txt、.dat等文件,将其中特定内容存到其他文件
  19. 【数据结构-ZZU】01. 绪论
  20. Windows如何找到相应的COM组件

热门文章

  1. 光有面罩不是能防护的
  2. bnpparibas
  3. 【转】Unity Scene场景自定义坐标轴
  4. windows 如何使用4GB(开启3GB和PAE)
  5. 再见切赫!斯坦福桥“坦克兵”不止是蓝军传奇
  6. C中结构体的存储分配
  7. strcpy 通过指针复制字符串出错问题
  8. ASA IPSEC ×××配置
  9. PLinq Lookup ParallelQuery
  10. 开发软件真是一件有意思的事情