本题要求找出整数数组中满足「任意两个相邻元素的绝对差严格大于 1」的最长子串(连续子数组)长度。
核心思路:一次遍历
由于要求的是连续子串(不是子序列),我们只需要遍历数组,维护当前满足条件的子串长度即可:
cur = 1,答案 ans = 1。给定一个整数数组,请找出最长的子串,使得该子串中任意两个相邻元素的绝对差都严格大于 1。输出这个最长子串的长度。
例如,数组 [1, 3, 4, 5, 6, 5, 4] 中,子串 [1, 3] 满足条件 (|1-3|=2>1),且是最长的,因此答案为 2。
数组长度为 n,0≤n≤1000
数组范围 nums[] ,0≤nums[i]≤10000
输入为一个整数数组
输出满足条件的最长子串的长度
输入
[1, 3, 4, 5, 6, 5, 4]
输出
2
说明
最长子串是[1,3],长度是2
输入
[1, 3, 5, 7]
输出
4
说明
最长子串是[1, 3, 5, 7],长度是4
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.