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

JAVA算法练习题day61

68.寻找两个正序数组的中位数

困难题也要做,对应题解也要掌握。

class Solution(object):def findMedianSortedArrays(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: float"""#这种双指针的思路以及prev,cur的使用更新语句 还是要熟记于心熟用,n,m = len(nums1),len(nums2)mid = (m+n)/2#存指针的值prev=cur=0i=j=0for _ in range(mid+1):prev=curif i >=n:cur = nums2[j]j+=1elif j>=m:cur = nums1[i]i+=1elif nums1[i]<nums2[j]:cur = nums1[i]i+=1else:cur = nums2[j]j+=1if (m+n)%2==0:return (prev+cur)/2.0return cur
class Solution(object):def findMedianSortedArrays(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: float"""#寻找两个正序数组第K大的数(index要-1)def getK(nums1,nums2,k):m = len(nums1)n = len(nums2)index1 = 0index2 = 0while True:#先处理边界情况,index满了;或者k==1if index1 == m:#注意index别写错return nums2[index2+k-1]elif index2 == n:#注意index别写错return nums1[index1+k-1]elif k == 1:return min(nums1[index1],nums2[index2])#这里newindex要处理越界,记得加上偏移量index i newindex1 = min(index1+k//2-1,m-1)newindex2 = min(index2+k//2-1,n-1)A = nums1[newindex1]B = nums2[newindex2]if A<=B:k -= (newindex1-index1+1)index1 = newindex1+1else:k -= (newindex2-index2+1)index2 = newindex2+1total_length = len(nums1)+len(nums2)if total_length % 2 == 0:return (getK(nums1,nums2,total_length//2)+getK(nums1,nums2,total_length//2+1))/2.0else:#第三个参数的意思是 第K大,所以填的是index+1return getK(nums1,nums2,(total_length+1)//2)

http://www.dtcms.com/a/565532.html

相关文章:

  • 【IC】NoC设计入门 -- 队头阻塞 (Head-of-Line Blocking)
  • 产品设计可视化解决方案
  • 数据结构(16)
  • 网站建站行业兰州网络推广新手
  • 怎样将自己做的网页加入网站南京品牌网站建设
  • 前端工具全景实战指南,从开发到调试的效率闭环
  • Nxt v1.13.1:标志性更新为12年历史的区块链项目写下新篇章
  • C++ 学习 —— 04 - STL容器
  • 什么是端口管理?网络安全的关键环节
  • 竞品网站分析温州企业网站制作
  • Apache Paimon 写入流程
  • 如何设计一个秒杀系统(下)
  • 投资网站策划晋江市建设局网站
  • 博客阅读:chatgpt 2025 GPT-5 Jailbreak with Echo Chamber and Storytelling
  • 经典模板网站建设wordpress函数讲解
  • HTTP协议与WebSocket完整技术指南
  • 时序数据库核心技术解析-以InfluxDB/TSDB为例
  • 各大网站收录入口ASP.NET与网站开发编程实战
  • 招聘网站建设与开发要求typecho转wordpress
  • 专为严苛环境而生:高防护等级工业防水平板WPPC-H1520T(P)
  • 网站建设销售培训好网站的标准
  • 当多进程遇上异步:一次 Celery 与 Async SQLAlchemy 的边界冲突
  • 【Tailwind,DaisyUI】如何让 button 文字左对齐?
  • 【IC】NoC设计入门 -- 传统总线Bus
  • CoDeGAN:用对比学习重新定义GAN中的表示解耦
  • hive中数据的来源
  • 企业营销型网站的内容路由器 搭建wordpress
  • 2.4、恶意软件猎手:基于深度学习的二进制文件判别
  • 力扣hot100---42.接雨水(java版)
  • 长春公司建站模板三把火科技网站设计