我被第三个测试点卡了很久,搜到的应该都是被这个点坑的,我直接说重点。
考虑这样几个测试用例:
1 2
一个数字2,最大子序列和是2,首位数字也是2,故正确输出2 2 2
(在我的程序中,错误地输出了2 0 0)
1 0
毫无疑问 0 0 0
1 -3
根据题意,如果序列中全是负的,把最大子序列和当做0,并输出首尾数字,故这里应该输出0 -3 -3
以上是关于测试点3的,下面再给几个比较坑的数据,你们自己看能不能把这些过了:
- 输入:3 2 2 0 输出:4 2 2
- 输入:3 0 1 2 输出:3 0 2
我的代码比较混乱,就不恶心大家了,以下是《算法笔记》一书中给出的代码。