OlveraeUNSW
返回题目列表
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