最大子数组和(允许删除一个元素)
Java
Hard
arrays
任务 «最大子数组和(允许删除一个元素)»
给定一个整数数组。需要找到子数组(连续元素序列)的最大和,条件是可以删除最多一个元素(或不删除任何元素)。子数组必须至少包含一个元素。要求实现时间复杂度为 O(n) 且使用常数额外空间的算法。
输入格式
第一行包含一个整数 n (1 ≤ n ≤ 10^5) — 数组元素的数量。第二行包含 n 个由空格分隔的整数 — 数组元素(绝对值不超过 10^4)。
输出格式
一个整数——删除不超过一个元素后子数组的最大可能和。
示例
示例 1
输入
5 1
1 2 3 2 4
输出
9
示例 2
输入
2
7 1
-4 3
输出
8
示例 3
输入
6
2 -1 2 3 4 -5
输出
11
main.java