@ninijia 在 Leetcode每日一题练习 ------ 2762. 不间断子数组 中发帖
从Leetcode 每日一题练习继续讨论:
2762. 不间断子数组
2762. Continuous Subarrays
题解
本题思考题目条件,要求子数组中任意两个数字之间差的绝对值不超过2。则可使用双指针来指示子数组当前的范围,同时使用两个变量分别记录当前子数组内的最大值和最小值。先将右指针向后移动,同时更新子数组内的最大值和最小值,判断二者的差是否小于等于2。等于则说明该子数组满足条件,要给结果加上子数组长度(相当于新加入的数字自身,加上数字和前面的各个子数组的组合)。
当新遍历的数使得数组内的最大值和最小值差大于2时,考虑两种情况,如上述情况数字范围为3~5,则若新数字为6,则之前的数组中若尾部仅包含4,5两个数字,4,5,6仍然符合题目要求的差的绝对值为2。故找到之前子数组的尾部仅包含4,5两个数字的部分保留。对于7同理。但若数字大于7,则之前的数组中不可能存在可以和7...