# Kadane’s Algorithm

![](https://3743232000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHW2IQuh2PFpWJDvBz2FF%2Fuploads%2Fgit-blob-697944a0abbd2b4d14792ed5f367f49203c80ee9%2FScreenshot%202023-01-23%20at%2018.46.53.png?alt=media)

* 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;
```
