三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

华为OD机试真题 新系统 2026-08-05 C++ 实现【最长不连续子串】

华为OD机试真题 新系统 2026-08-05 C++ 实现【最长不连续子串】

目录

题目

思路

Code

题目

题目内容:

给定一个整数数组,请找出最长的子串,使得该子串中任意两个相邻元素的绝对差都严格大于 1。输出这个最长子串的长度。

这里的子串指数组中的连续片段。数组长度 n 的范围为 0 到 1000,数组元素范围为 0 到 10000。

输入描述:

输入为一个整数数组,元素之间用英文逗号分隔。若输入为空,则表示空数组。

输出描述:

输出满足条件的最长子串长度。

样例 1

输入:

1,3,4,5,6,5,4

输出:

2

说明:

最长子串是 1,3,长度为 2。

样例 2

输入:

1,3,5,7

输出:

4

说明:

整个数组相邻元素绝对差都严格大于 1。

思路

整体思路:条件只约束相邻元素,因此当某一对相邻元素绝对差小于等于 1 时,合法子串一定在这里断开。

第一步:用 left 记录当前合法连续片段的起点,从左到右枚举 right。

第二步

← 返回列表