返回题目列表
COMP2521
数组 · 最长严格递增连续子段
数组 · 最长严格递增连续子段长度
读入一串整数,求其中最长的「严格递增且连续」子段的长度。
- 连续:必须是挨着的一段(下标 i, i+1, i+2 …),不能跳着挑。
- 严格递增:后一个必须大于前一个(
a[i] > a[i-1]),相等不算递增。
例如 1 3 2 4 5 6 1:能找到 2 4 5 6 这段,长度 4,是最长的。
请补全 longestRun:用 cur 记当前这段已经递增了多长,用 best 记历史最长。从 i = 1 开始扫——a[i] > a[i-1] 就 cur++,否则当前段断了,cur 归 1;每一步都拿 cur 去刷新 best。
易错点(正是错误实验室里的坑):① 循环写成i <= n会读到a[n]这格越界的垃圾;下标合法范围是0 ~ n-1。② 把「严格」的>写成>=,相等也算递增就会把答案算大。③n == 0(空数组)时长度是0,别让best从 1 起还直接返回。
输入
- 第 1 行:整数
n(元素个数,可能为0)。 - 第 2 行:
n个整数,空格分隔。
输出
- 一行:最长严格递增连续子段的长度。
示例:输入 7 / 1 3 2 4 5 6 1 → 输出 4。
样例
stdin
7 1 3 2 4 5 6 1
期望输出
4
stdin
1 42
期望输出
1
c-dcc
14