diff --git a/paradigm/kadane.cpp b/paradigm/kadane.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8ad7c719b27f5370dd75c30218a753f716c5c09b
--- /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;
+}