给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。

如果不存在满足条件的子数组,则返回 0 。

示例 1:

输入:nums = [8,2,4,7], limit = 4
输出:2
解释:所有子数组如下:
[8] 最大绝对差 |8-8| = 0 <= 4.
[8,2] 最大绝对差 |8-2| = 6 > 4.
[8,2,4] 最大绝对差 |8-2| = 6 > 4.
[8,2,4,7] 最大绝对差 |8-2| = 6 > 4.
[2] 最大绝对差 |2-2| = 0 <= 4.
[2,4] 最大绝对差 |2-4| = 2 <= 4.
[2,4,7] 最大绝对差 |2-7| = 5 > 4.
[4] 最大绝对差 |4-4| = 0 <= 4.
[4,7] 最大绝对差 |4-7| = 3 <= 4.
[7] 最大绝对差 |7-7| = 0 <= 4.
因此,满足题意的最长子数组的长度为 2 。

代码

class Solution {public int longestSubarray(int[] nums, int limit) {int len=0,res=-1,s=0;LinkedList<Integer> max=new LinkedList<>();LinkedList<Integer> min=new LinkedList<>();for(int i=0;i<nums.length;i++){while (!max.isEmpty()&&nums[max.getLast()]<nums[i])//单调递减的最大值队列max.removeLast();max.add(i);while (!min.isEmpty()&&nums[min.getLast()]>nums[i])//单调递增的最小值队列min.removeLast();min.add(i);while (!max.isEmpty()&&!min.isEmpty()&&nums[max.getFirst()]-nums[min.getFirst()]>limit)//将左边界缩小{if(max.getFirst()<=s) max.removeFirst();//移除不再左边界范围的值if(min.getFirst()<=s) min.removeFirst();//移除不再右边界范围的值s++;}res= Math.max(res,i-s+1);}return res;}
}

leetcode1438. 绝对差不超过限制的最长连续子数组相关推荐

  1. LeetCode-1438. 绝对差不超过限制的最长连续子数组

    题目描述: 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数 ...

  2. 1438. 绝对差不超过限制的最长连续子数组

    链接:1438. 绝对差不超过限制的最长连续子数组 题解: https://leetcode-cn.com/problems/longest-continuous-subarray-with-abso ...

  3. [leetcode]1438. 绝对差不超过限制的最长连续子数组

    个人博客:https://javaniuniu.com/ 难度:中等 本题涉及算法: 滑动窗口 思路:滑动窗口 类似题型: 3. 无重复字符的最长子串 5393. 可获得的最大点数 题目 1438. ...

  4. [LetCode-1438] 绝对差不超过限制的最长连续子数组

    题目 - letcode1438 难度 - 中等 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 l ...

  5. LeetCode 1438 绝对差不超过限制的最长连续子数组

    题目链接 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件的子数组 ...

  6. ⭐算法入门⭐《队列 - 单调队列》中等02 —— LeetCode 1438. 绝对差不超过限制的最长连续子数组

  7. 力扣刷题笔记:1438. 绝对差不超过限制的最长连续子数组(滑窗模板题,选择有序列表SortedList()数据类型就不会超时)

    题目: 1438.绝对差不超过限制的最长连续子数组 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 ...

  8. 力扣1438——绝对差不超过限制的最长连续子数组(滑动窗口+单调队列)

    题目描述(中等) 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条件 ...

  9. Feburary——1438. 绝对差不超过限制的最长连续子数组(滑动窗口)

    class Solution:def longestSubarray(self, nums: List[int], limit: int) -> int:#利用第三方库,将列表有序化,底层其实是 ...

最新文章

  1. rabbitmq实战指南_RabbitMQ之脑裂
  2. 一个身份证号码验证接口[2]
  3. sts-bundle的使用_使用WS-Trust / STS采样器扩展JMeter
  4. 数据结构和算法,也就那么回事儿
  5. java8 lambda表达式实现自定义用户组件,Don't Repeat Yourself
  6. 第十一节:JavaScript有了一种全新的数据类型:Symbol
  7. 我要重构“软件行业”......
  8. 非受检异常(运行时异常)和受检异常的区别等
  9. 问答| 为什么四轮驱动机器人的转向方式是滑动转向呢?
  10. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)
  11. python流星雨代码_用python一起来看流星雨
  12. DLL和EXE加载包在自身内部的资源文件
  13. activeMQ安装问题wrapper | Launching a JVM... wrapper | Unable to execute Java command.
  14. 使用Persepolis Download Manager多线程下载提升下载速度
  15. 有没有Type-C接口的无线投屏器?HDMI、USB、Type-C接口的无线投屏器又有什么区别呢?
  16. 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有鼠标怎么办
  17. Ubuntu之桌面安装及启动级别切换
  18. 毕业生--参考文献查询网站及方法(中文核心及以上)
  19. 在湖北考取的交通类安全员B证可以调转河南省企业使用吗?
  20. ZZULIOJ:1071: 分解质因子

热门文章

  1. 线程与进程的控制原语对比
  2. 资深Android开发带你入门Framework,架构师必备技能
  3. kafka 重新分配节点_Kafka控制器-分区重分配
  4. java---Listener Filter知识点学习
  5. Windows下快速删除上万个文件和子目录
  6. C#使用Json.NET解析Json
  7. ImageView缩放选项
  8. javascript继承模式原理与示例深入剖析
  9. SharePoint2013 Excel导出好的代码
  10. iOS sqlite