题目描述
题目描述
题解
题解
提交记录
提交记录
中等

给你一个整数数组 nums 和一个整数 limit。

请你返回 最长非空子数组 的长度,要求该 子数组 中 任意两个元素 之间的差的 绝对值 都 小于或等于 limit。

 

示例 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] 的最大绝对差为 |4-2| = 2 <= 4。
[2,4,7] 的最大绝对差为 |7-2| = 5 > 4。注意,元素对 (2, 7) 并不相邻,但仍然需要进行比较。
[4] 的最大绝对差为 |4-4| = 0 <= 4。
[4,7] 的最大绝对差为 |7-4| = 3 <= 4。
[7] 的最大绝对差为 |7-7| = 0 <= 4。
因此,最长子数组的长度为 2。

示例 2:

输入: nums = [10,1,2,4,7,2], limit = 5

输出: 4

解释:

子数组 [2,4,7,2] 满足条件,因为其中任意两个元素之间的绝对差都不超过 5,最大绝对差为 |7-2| = 5。

该子数组无法向左扩展,因为 [1,2,4,7,2] 包含元素对 (1, 7),其绝对差为 |7-1| = 6 > 5。因此,最长子数组的长度为 4。

示例 3:

输入: nums = [4,2,2,2,4,4,2,2], limit = 0

输出: 3

解释:

由于 limit = 0,子数组中任意两个元素都必须相等,因此只有由相同元素连续组成的子数组才满足条件。

满足条件的最长子数组为 [2,2,2],长度为 3。

 

提示:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 109
  • 0 <= limit <= 109
 
代码
代码
测试用例
测试用例
测试结果
测试结果