动态规划经典算法--最大子段和
生活随笔
收集整理的這篇文章主要介紹了
动态规划经典算法--最大子段和
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
狀態(tài)轉(zhuǎn)移方程:
f[i]=max(a[i],f[i-1]+a[i]) //要么舍棄,要么累加 即:前端序列小于0舍去,前子段大于0,不要白不要,加上! #include <bits/stdc++.h> using namespace std; //---------------https://lunatic.blog.csdn.net/-------------------// int data[100000]; int maxsum(int *a, int ln) {int maxi = 0, ans = 0;for (int i = 1; i <= ln; i++){if (maxi < 0)maxi = data[i];else maxi+=data[i];ans = max(ans, maxi);}return ans; } int main() {int len;cin >> len;for (int i = 1; i <= len; i++)cin >> data[i];cout << maxsum(data, len); }總結(jié)
以上是生活随笔為你收集整理的动态规划经典算法--最大子段和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划经典算法--最长公共子序列 LC
- 下一篇: 小老板,我学的计算机组成原理告诉我半导体