1855.下标对中的最大距离 python双指针解题

最小最大距离法(python实现) 最小最大距离法(python实现),用于实现样本聚类,含数据示例 立即下载

1855.下标对中的最大距离

https://leetcode-cn.com/problems/maximum-distance-between-a-pair-of-values/

难度:中等

题目:

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

下标对 (i, j) 中 0 <= i < nums1.length 且 0 <= j < nums2.length 。

如果该下标对同时满足 i <= j 且 nums1[i] <= nums2[j] ,则称之为 有效 下标对,该下标对的 距离 为 j - i 。

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

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

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-distance-between-a-pair-of-values
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

示例:

示例 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) 。

示例 4:

输入:nums1 = [5,4], nums2 = [3,2]
输出:0
解释:不存在有效下标对,所以返回 0 。

分析

看到两个非递减数组 + 最大距离条件,基本就确定了这是一道双指针题目。
题目要求,我们需要判断 i<=j 且 nums1[i] <= nums2[j]条件下的最大值
测试,我们循环nums2,然后初始point为nums1[0],然后循环判断即可。
这里有一个小细节,当point > max_len -1 时,表示while循环结束了,但仍未找到满足题意的关系。
此时直接ret即可,无需再继续执行了。

解题:

class Solution:
    def maxDistance(self, nums1, nums2):
        ret = 0
        point = 0
        max_len = len(nums1)
        for i in range(len(nums2)):
            while point < max_len and nums1[point] > nums2[i]:
                point += 1
            if point > max_len - 1 or nums1[point] > nums2[i]:
                return ret
            ret = max(ret, i - point)
        return ret

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

Java实现的计算最大下标距离算法示例 主要介绍了Java实现的计算最大下标距离算法,涉及java针对数组的遍历、运算等相关操作技巧,需要的朋友可以参考下 立即下载

相关推荐

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1091

最大下标距离

题目描述给定一个整形数组,找出最大下标距离j−i, 当且A[i]解法public static int maxindexdistance(int A[]) { boolean[] isDes = new boolean[A.length]; int min = A[0]; isDes[0] = true; for (int i = 0;

Yaphat的博客 705

CANoe LIN一致性测试之干扰测试Test moudle_LIN Disturbance Block

注意:相邻两个显隐性不同的bit不允许干扰,例如我同时选择bit6和bit7,相邻两个同显隐性的bit允许干扰,例如当我选择bit3和bit4,项,这里我选择ID:为0x2F(PID:0x6F)的frame。需按照具体测试规范实施干扰项,帧头和数据段都可以实现干扰。最近发现一个干扰测试模块,下面是一些具体使用方法。选择干扰项:PID的奇偶校验位(一致性测试干扰测试之手动测试。一个待测试frameD。

yuanyikangkang的博客 3413

python公式计算_Python Numpy计算各类距离的方法

详细:1.闵可夫斯基距离(Minkowski Distance)2.欧氏距离(Euclidean Distance)3.曼哈顿距离(Manhattan Distance)4.切比雪夫距离(Chebyshev Distance)5.夹角余弦(Cosine)6.汉明距离(Hamming distance)7.杰卡德相似系数(Jaccard similarity coefficient)8.贝叶斯公式1...

weixin_39633252的博客 1045

别再为Word转PDF表格变形发愁了!Aspose.Words for Java 19.5 保姆级避坑指南

本文详细介绍了使用Aspose.Words for Java 19.5解决Word转PDF时表格变形问题的完整方案。从格式转换原理到实战技巧,涵盖固定表格宽度、禁用自动调整、强制文本换行等核心方法,并提供高级场景应对策略和性能优化建议,帮助开发者高效处理复杂文档转换需求。

weixin_28702105的博客 267

【模拟电子设计实战】开源!基于Multisim与AD620的心电采集电路仿真与优化

本文详细介绍了基于Multisim与AD620的心电采集电路仿真与优化实战。通过分析心电信号采集的挑战,重点讲解了AD620仪表放大器和OP07运算放大器的选型优势及电路设计技巧,包括对抗50Hz工频干扰和基线漂移的优化方法。文章还分享了Multisim仿真参数设置与实测对比经验,最终实现性能达标的心电采集电路设计。

weixin_30555125的博客 97

1855. 下标对中的最大距离

一个数组arr如果满足:对于每个,都有,则该数组是非递增数组。也就是说,数组元素从左到右是递减或相等的。两个数组均为非递增,即从大到小排序。需要寻找满足条件的(i, j)对,并且i <= j。返回最大距离j - i。本题利用非递增数组的特性,设计双指针算法,能高效地求出满足条件的最大距离。相比暴力方法,极大减少了时间复杂度。适合有序数组的问题,双指针往往能快速找到符合条件的最优解。保持两个指针递增,合理调整指针保证不漏解。如果你也遇到类似数组配对、区间最大距离类问题,不妨试试双指针法!

Lucy_wzw的博客 935

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1928

【Python基础】零基础学习Python列表操作

作者:来自读者投稿整理:Lemon出品:Python数据之道“ 「Python数据之道」导读:本文来自读者投稿,Python数据之道早些时候也发过 Python 列表相关的文章,可以...

fengdu78的博客 2181

第一章 EB安装

1.DemoWorkspace 是基于EB当前组件配置下的例程,包含了启动文件和中断服务函数以及组件demo。2.Mclsar 下存放的是EB的插件包和静态MCAL的驱动文件。

舊梦的博客 1965

17、高通8155座舱平台--QNX开发基础

我个人习惯,拿到一个新板子,第一件事就是打开IDE,建一个空的QNX项目,然后跑一遍Hello World。比如,当触摸屏被按下时,驱动发一个脉冲给UI进程,告诉它“嘿,有人摸屏幕了”。我在8155上调试时,就遇到过因为脉冲优先级太低,导致触摸响应延迟的问题。IDE自带的编译器是qcc,它其实是gcc的封装。QNX的IPC机制,可以说是它最牛的地方。嗯,这套流程走下来,你对QNX开发的基本功就差不多了。QNX默认的消息缓冲区大小是64KB,如果你要传大块数据,比如音频流,那就得用共享内存了。

woailuojp的博客 55

最大距离

1272 最大距离 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成1

qq_37551863的博客 724

YOLOv11改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、恶劣天气等问题

在一些特定情况下,目标检测任务由于多种因素的影响,变得更加复杂和困难。以下是几类常见的困难目标检测场景:1. 小目标检测定义:小目标检测是指当目标在图像中的占比非常小时,模型需要准确识别和定位这些目标。典型场景包括远程监控、卫星图像分析等。挑战1. 低分辨率:由于目标在图像中占据像素较少,细节缺失,特征提取难度增加。2. 特征不足:小目标缺乏明显的形状和纹理特征,容易被复杂背景淹没。3. 检测难度大:由于小目标与背景之间的对比度较低,误检的几率上升。4. 数据不平衡。

qq_64693987的博客 4万+

1855 下标对中的最大距离

题目描述: 给你两个 非递增 的整数数组 nums1​​​​​​ 和 nums2​​​​​​ ,数组下标均 从 0 开始 计数。 下标对 (i, j) 中 0 <= i < nums1.length 且 0 <= j < nums2.length 。如果该下标对同时满足 i <= j 且 nums1[i] <= nums2[j] ,则称之为 有效 下标对,该下标对的 距离 为 j - i​​ 。​​ 返回所有 有效 下标对 (i, j) 中的 最大距离 。如果不存在有效下

weixin_44171872的博客 228

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python取数组最大值_python+numpy按行求一个二维数组的最大值方法

问题描述:给定一个二维数组,求每一行的最大值返回一个列向量如:给定数组【1,2,3;4,5,3】返回[3;5]import numpy as npx = np.array([[1,2,3],[4,5,3]])# 先求每行最大值得下标index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算print(index_max.shape)max = x[range...

weixin_39644952的博客 2365

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python——求最大值及其下标

Python——求最大值及其下标 编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从零开始)。 程序代码: n=int(input()) ls=input().split() lst=list(map(int,ls)) #利用map函数把ls中的元素 t=max(lst) 换成整型,再用列表形式输出 a=lst.index(t) print(t,a) ...

weixin_52430460的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

leetcode 部分题解(python)

leetcode 部分题解(python)Sum of Two Integers题目链接:https://leetcode.com/problems/sum-of-two-integers/ 题目翻译: 计算两个整数a和b的和,但是不能使用运算符加号和减号。 比如:给定a=1,b=2,返回3。思路:既然不能使用加法和减法,那么就用位操作。下面以计算5+4的例子说明如何用位操作实现加法:

wanghai00的博客 6151

编程笔试题※python实现※数组类

1.寻找数组中出现次数超过一半的数 思路:建立一个和输入数组一样大小的数组,用来记录每个数字出现的数, 最后判断出现次数大于等于1/2len的取出来。 l = [int(n) for n in input().split()] #创建记录数组 b = [None]*len(l) for i in range(len(l)): b[i]=0 max=0 #对应位置的数字出现一次,记录数组加一...

我的心曾悲伤7次 2129

java打印最大数的下标_Java实现的计算最大下标距离算法示例

本文实例讲述了Java实现的计算最大下标距离算法。分享给大家供大家参考,具体如下:题目描述给定一个整形数组,找出最大下标距离j−i, 当且A[i] < A[j] 和 i < j解法复杂度:三次扫描,每次的复杂度O(N)算法:{5,3,4,0,1,4,1}找出从第一个元素开始的下降序列{5,3,0}i=3,j=6, j从尾部扫描初始化,i=3, j=6, A[i]=0实现代码public...

weixin_42335570的博客 126

算法练习:最大下标距离

一、题目描述 给定一个整型数组,找出最大下标距离j-i,当且仅当a[j]>a[i],i 。     二、直观方案( 时间复杂度为O(n^2) ) 对每个元素,从其后找出比其大的元素,并计算下标距离,取距离中的最大值即可。该 方案的时间复杂度为O(n^2)。那么能不能优化下呢?   三、优化方案( 时间复杂度为O(n) ) 存在这样一个事实,当a[i+1]大于a[i]时,如果在它们

憧憬,思考,奋斗,飞翔 2408

面试:数组:最大下标距离

给定一个整形数组,找出最大下标距离j−ij-i, 当且A[i]<A[j]和i<jA[i]<A[j]和i<j 复杂度:三次扫描,每次的复杂度O(N)O(N) 算法:{5,3,4,0,1,4,1}找出从第一个元素开始的下降序列{5,3,0} i=3,j=6, j从尾部扫描 初始化,i=3, j=6, A[i]=0//HelloDate.java import java.util.*; public cl

LandscapeMi 1047

面试题5:最大下标距离

题目:给定一个整型数组A,找出最大下标距离j-i,当且仅当 A[i]&lt;A[j]和i&lt;j书中给出的思路:思路一:常规我们最直观想到的解决方法是(1)i=0,j=end(end为最后下标所在位置),max=0(2)如果A[i]&lt;A[j],j-i&gt;max,则max=j-i(3)i++,j=end(4)重复第二、第三步骤,直到i==j这种算法的时间复杂度是 1+2+...+n-1 ...

qq_35191331的博客 645

Leetcode 1855. Maximum Distance Between a Pair of Values

文章作者:Tyan 博客:noahsnail.com  |  优快云  |  简书 1. Description 2. Solution **解析:**Version 1,由于两个数组都是非增数组,因此保证了数值的大小关系,如果i<=j,此时比较nums1[i] <= nums2[j],如果符合,则计算距离distance,并与已有距离比较取较大值,在i<=j且nums1[i] > nums2[j]的情况下,此时应该移动i,如果i>j

SnailTyan 387

Leetcode 1855. 下标对中的最大距离(DAY 118) ---- 贪心算法学习期

文章目录原题题目代码实现(首刷自解超高时间复杂度 待优化)代码实现(首刷自解优化 双指针) 原题题目 代码实现(首刷自解超高时间复杂度 待优化) class Solution { public: int maxDistance(vector<int>& nums1, vector<int>& nums2) { unordered_map<int,int> map; int ret = 0; fo

Love 6's Private Blog 432
上一篇: 力扣每日一题:1310.子数组异或查询
下一篇: 力扣每日一题:134.加油站 贪心+暴力双解
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值