DEV Community

Amina Mohamed
Amina Mohamed

Posted on

Solution to Leetcode’s Maximum Subarray-JS(53)

let maxSubArray=function(nums) {
let maxSum=nums[0]
let currentSum=nums[0]
for(let i=1;i<nums.length;i++){
currentSum=Math.max(currentSum+nums[i],nums[i])
maxSum=Math.max(currentSum,maxSum)
}
return maxSum

};
//CODE EXPLANATION -This is Kadane’s Algorithm
Maximum sum of a contiguous subarray :this means a sequence of numbers that appear next to each other
for Case 1=[-2,1,-3,4,-1,2,1,-5,4]
so we have the currentSum it iterates through the array.
Step1:
Initialize currentSum=-2,maxSum=-2
currentSum=Math.max(-2+1,1)=1
maxSum=Math.max(1,-2)=1
Step2:
currentSum=1
currentSum=Math.max(1+(-3),-3)=-2
maxSum=Math.max(-2,1)=1
Step3:
currentSum=-2
currentSum=Math.max(-2+4,4)=4
maxSum=Math.max(4,1)=4
Step4:
currentSum=4
currentSum=Math.max(4+(-1),-1)=3
maxSum=Math.max(3,4)=4
Step5:
currentSum=3
currentSum=Math.max(3+(2),2)=5
maxSum=Math.max(5,4)=5
Step6:
currentSum=5
currentSum=Math.max(5+(1),1)=6
maxSum=Math.max(6,5)=6
Step7:
currentSum=6
currentSum=Math.max(6+(-5),-5)=1
maxSum=Math.max(1,6)=6
Step8:
currentSum=1
currentSum=Math.max(1+(4),4)=5
maxSum=Math.max(5,6)=6

I hope you understand. If you found this helpful or have your own way of thinking about it, drop a comment below!

Top comments (0)