> For the complete documentation index, see [llms.txt](https://algorithm.prettylog.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://algorithm.prettylog.com/algorithm-problems/algoexpert/medium/kadanes-algorithm.md).

# Kadane’s Algorithm

![](/files/siDLKInknuljduy7nopJ)

* first try

```jsx
function kadanesAlgorithm(arr) {
  let max = arr[0];
  let sum = arr[0];

  for (let i = 1; i < arr.length; i++) {
    const curr = arr[i];
    const currentSum = sum + curr;
    max = Math.max(currentSum, max, curr);
    sum = Math.max(currentSum, 0);
  }

  return max;
}

// Do not edit the line below.
exports.kadanesAlgorithm = kadanesAlgorithm;
```

* second try
* remove currenSum

```jsx
function kadanesAlgorithm(arr) {
  let max = arr[0];
  let sum = arr[0];

  for (let i = 1; i < arr.length; i++) {
    const curr = arr[i];
    // from this line, if sum < 0, sum = curr
    // basically filter sum less than 0
    sum = Math.max(sum + curr, curr); 
    max = Math.max(sum, max);
  }

  return max;
}

// Do not edit the line below.
exports.kadanesAlgorithm = kadanesAlgorithm;
```
