From c2250cd9498435105e7b85d696fedba87472089a Mon Sep 17 00:00:00 2001 From: Bruno Freitas Tissei <bft15@inf.ufpr.br> Date: Tue, 13 Feb 2018 11:36:13 -0200 Subject: [PATCH] Add kadane Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br> --- paradigm/kadane.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 paradigm/kadane.cpp diff --git a/paradigm/kadane.cpp b/paradigm/kadane.cpp new file mode 100644 index 0000000..8ad7c71 --- /dev/null +++ b/paradigm/kadane.cpp @@ -0,0 +1,31 @@ +/** + * Kadane + * + * Complexity (Time): O(n + m) + * Complexity (Space): O(n + m) + */ + +int v[MAX]; + +int kadane() { + // Maximum so far (msf), Maximum ending here (meh). + int msf = -0x3f3f3f3f, meh = 0; + int start = 0, end = 0, s = 0; + + for (int i = 0; i < n; ++i) { + meh += v[i]; + + if (msf < meh) { + msf = meh; + start = s; + end = i; + } + + if (meh < 0) { + meh = 0; + s = i + 1; + } + } + + return msf; +} -- GitLab