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

LeetCode 1855.下标对中的最大距离:双指针

【LetMeFly】1855.下标对中的最大距离:双指针

力扣题目链接:https://leetcode.cn/problems/maximum-distance-between-a-pair-of-values/

给你两个非递增的整数数组nums1​​​​​​ 和nums2​​​​​​ ,数组下标均从 0 开始计数。

下标对(i, j)0 <= i < nums1.length0 <= j < nums2.length。如果该下标对同时满足i <= jnums1[i] <= nums2[j],则称之为有效下标对,该下标对的距离j - i​​ 。​​

返回所有有效下标对(i, j)中的最大距离。如果不存在有效下标对,返回0

一个数组arr,如果每个1 <= i < arr.length均有arr[i-1] >= arr[i]成立,那么该数组是一个非递增数组。

示例 1:

输入:nums1 = [55,30,5,4,2], nums2 = [100,20,10,10,5]输出:2解释:有效下标对是 (0,0), (2,2), (2,3), (2,4), (3,3), (3,4) 和 (4,4) 。 最大距离是 2 ,对应下标对 (2,4) 。

示例 2:

输入:nums1 = [2,2,2], nums2 = [10,10,1]输出:1解释:有效下标对是 (0,0), (0,1) 和 (1,1) 。 最大距离是 1 ,对应下标对 (0,1) 。

示例 3:

输入:nums1 = [30,29,19,5], nums2 = [25,25,25,25,25]输出:2解释:有效下标对是 (2,2), (2,3), (2,4), (3,3) 和 (3,4) 。 最大距离是 2 ,对应下标对 (2,4) 。

提示:

  • 1 <= nums1.length <= 105
  • 1 <= nums2.length <= 105
  • 1 <= nums1[i], nums2[j] <= 105
  • nums1nums2都是非递增数组

解题方法:双指针

可以枚举j jj,随着j jj的增大,n u m s 2 [ j ] nums2[j]nums2[j]变小,满足n u m s 1 [ i ] ≤ n u m s 2 [ j ] nums1[i]\leq nums2[j]nums1[i]nums2[j]n u m s 1 [ j ] nums1[j]nums1[j]会变小,i ii会增大。

使用双指针,在枚举j jj的时候,不断增大i ii并保持n u m s 1 [ i ] ≤ n u m s 2 [ j ] nums1[i]\leq nums2[j]nums1[i]nums2[j]。如果i ii超出数组范围,则说明n u m s 1 nums1nums1中最小的元素仍然大于n u m s 2 [ j ] nums2[j]nums2[j],退出。

  • 时间复杂度O ( l e n ( n u m s 1 ) + l e n ( n u m s 2 ) ) O(len(nums1)+len(nums2))O(len(nums1)+len(nums2))
  • 空间复杂度O ( 1 ) O(1)O(1)

AC代码

C++
/* * @LastEditTime: 2026-04-19 13:38:49 */classSolution{public:intmaxDistance(vector<int>&nums1,vector<int>&nums2){intans=0;for(inti=0,j=0,n=nums1.size(),m=nums2.size();j<m;j++){while(i<n&&nums1[i]>nums2[j]){i++;}if(i==n){break;}ans=max(ans,j-i);}returnans;}};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.cnnetsun.cn/news/2000693.html

相关文章:

  • Python的__getattr__在属性访问链中的递归调用问题
  • 【2026年最新600套毕设项目分享】微信小程序的电影院订票选座系统(30118)
  • 从流体力学到临床:一文搞懂FFR(血流储备分数)的计算原理与核心价值
  • 避坑指南:在Cesium中构建清晰三维管道网络,如何解决实体重叠与视觉混乱问题?
  • 汽修厂最怕你发现的秘密武器!只输个车型,汽车毛病怎么修全都有
  • MCU逐波保护( CBC)技术
  • 3分钟快速安装TrollStore:TrollInstallerX终极指南
  • 保姆级教程:在Ubuntu 20.04上搞定GAMIT/GLOBK 10.7安装(含gfortran版本避坑指南)
  • 开源移动端性能测试测试工具推荐-perfara
  • “方向盘没松开就答错”?Dify注意力掩码机制深度解析:如何用3行配置实现驾驶专注度感知式应答降频(实测降低误唤醒率76%)
  • 抖音去水印批量下载终极指南:如何3分钟搞定无水印视频批量下载
  • VideoSrt:如何为视频创作者解决字幕制作难题的智能语音识别解决方案
  • HiveWE:重新定义魔兽争霸III地图制作的终极智能编辑器
  • EM菌在水产养殖中的作用与优质产品推荐
  • 从‘学生选课’到‘商品订单’:手把手带你用MySQL实战理解关系代数(选择、投影、连接)
  • 告别实体卡!Android 系统级 SIM 卡模拟:CarrierTestOverride 机制深度解读与自定义配置
  • 用MATLAB搞定无人机/机器人轨迹规划:手把手实现Minimum Snap(附完整代码)
  • 从“七桥问题”到算法面试:离散数学中的图论到底怎么用?
  • 别再被CPK和PPK搞晕了!用Minitab做过程能力分析,这3个坑新手必踩(附真实数据案例)
  • 告别手动配置!在Ubuntu 22.04上一条命令搞定PyQt5和Qt Designer开发环境
  • 医学图像分割神器ITK-SNAP:为什么8000+研究论文都选择这款开源工具?
  • 百度网盘下载加速全攻略:3步解锁满速下载的免费开源方案
  • Ryujinx模拟器终极指南:从零开始体验Nintendo Switch游戏
  • LeetCode 1024题保姆级攻略:用Python搞定视频拼接,快速排序+贪心算法实战解析
  • 论文魔法师:书匠策AI,让期刊论文创作如行云流水
  • 【仅限首批内测用户开放】Dify 2026私有化微调沙盒环境实录:如何在8GB显存上完成7B模型全参数微调?
  • 终极免费B站视频下载解决方案:DownKyi快速上手完全指南
  • Windows Cleaner:3个简单步骤彻底告别C盘爆红烦恼
  • 【3D视觉实战】ShapeNet数据集:从核心结构到语义标注的深度解析
  • Linux登录那些坑:一次搞定PAM认证错误‘unable to dlopen’(以lightdm为例)