请给出函数,实现如下功能
class Solution { public int maxRS(int[] A); }
给定一个0为起始下标的数组 A ,其中包含 N 个整数, 返回 A 中最长的连续递增子序列的起始下标, 如果不存在这样的子序列,则返回−1
例如,给定 N=10 并且
A[0] = 2 A[1] = 2 A[2] = 2 A[3] = 2 A[4] = 1 A[5] = 2 A[6] = -1 A[7] = 2 A[8] = 1 A[9] = 3
此函数可以返回 4,因为 A 中最长的连续递增子序列的长度为 2, 同时从下标 4 开始的长度为 2 的子序列是一个连续递增子序列, 6 或者 8 同样也是正确的答案。
又例如:给定 N=3 的数组 A[0]=30, A[1]=20, A[2]=10, 此函数可以返回 0, 1, 2, 因为数组 A 的最长的连续递增子序列的长度为 1.
数组 A 中可能包含数百兆字节的数据。
假定:
- N 是 [1..1,000,000] 内的 整数;
- 数组 A 每个元素是取值范围 [−2,147,483,648..2,147,483,647] 内的 整数 .
复杂度:
- 最坏-情况下,期望的时间复杂度是 O(N);
- 最坏-情况下,期望的空间复杂度是 O(N), 输入存储除外 (不计输入参数所需的存储空间).
输入数组中的元素可以修改.