From e11084cb53e3d51096914cdd6fce176e9274ef8e Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Sun, 16 Oct 2022 15:19:03 +0530 Subject: [PATCH] feat: kadane's algorithm in short using dp --- .../Kadane's Algorithm.cpp | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Algorithms/Dynamic Programming/Kadane's Algorithm.cpp diff --git a/Algorithms/Dynamic Programming/Kadane's Algorithm.cpp b/Algorithms/Dynamic Programming/Kadane's Algorithm.cpp new file mode 100644 index 0000000..6e8f357 --- /dev/null +++ b/Algorithms/Dynamic Programming/Kadane's Algorithm.cpp @@ -0,0 +1,30 @@ +#include +#define int long long +#define INF 1000000000000000000 +#define MOD 1000000009; +#define mid(l, u) ((l + u) / 2) +#define rchild(i) (i * 2 + 2) +#define lchild(i) (i * 2 + 1) +using namespace std; + +signed main() { + int n; + cin >> n; + int a[n]; + for (int i = 0; i < n; i++) + cin >> a[i]; + int dp[n]; + dp[0] = a[0]; + int ans = a[0]; + for (int i = 1; i < n; i++) + ans = max(ans, (dp[i] = a[i] + max(dp[i - 1], (int)0))); + cout << ans << endl; +} + +/* +Sample Input: +8 +-2 -3 4 -1 -2 1 5 -3 +Sample Output: +7 +*/ \ No newline at end of file