2022-12-06:定义一个概念叫"变序最大和"
"变序最大和"是说一个数组中,每个值都可以减小或者不变,
在必须把整体变成严格升序的情况下,得到的最大累加和
比如,1,100,7变成1,6,7时,就有变序最大和为...14
比如,5,4,9变成3,4,9时,就有变序最大和为16
比如,1,4,2变成0,1,2时,就有变序最大和为3
给定一个数组arr,其中所有的数字都是>=0的。...求arr所有子数组的变序最大和中,最大的那个并返回。
1 <= arr长度 <= 10^6,
0 <= arri <= 10^6。
来自Amazon。
答案2022-12-06:
单调栈+dp。...("测试结束");
}
// 时间复杂度O(N * V)的方法
// 为了验证
fn max_sum1(arr: &mut Vec) -> i64 {
let n = arr.len...时间复杂度O(N)
fn max_sum2(arr: &mut Vec) -> i64 {
let n = arr.len() as i32;
// 只放下标,只要有下标,arr可以拿到值