915. 分割数组
分析
- 从右往左预处理出数组
r[i]
,表示从位置i
到末尾的最小值 - 遍历查找分界点:
- 从左往右遍历,用变量
l
记录当前left
的最大值 - 每到一个位置,检查
l <= r[i + 1]
,如果满足,说明当前划分是合法的,可以返回当前left
的长度
- 从左往右遍历,用变量
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度 O(n)
C++代码
|
|
r[i]
,表示从位置 i
到末尾的最小值l
记录当前 left
的最大值l <= r[i + 1]
,如果满足,说明当前划分是合法的,可以返回当前 left
的长度时间复杂度 O(n)
空间复杂度 O(n)
|
|