LEETCODE SERIES || DAY 9 || (53) Maximum Subarray

1–2 minutes

read

Day 9 Leet code series, today we will be picking the problem Maximum Subarray (https://leetcode.com/problems/maximum-subarray/).

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

subarray is a contiguous part of an array.

Example 1:

Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.

Example 2:

Input: nums = [1]
Output: 1

Example 3:

Input: nums = [5,4,-1,7,8]
Output: 23

Kadane’s algorithm

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int maxSoFar = INT_MIN;
        int maxEndingHere = 0;
        for(int i=0;i<nums.size();i++){
            maxEndingHere = maxEndingHere + nums[i];
            if(maxEndingHere > maxSoFar ){
                maxSoFar = maxEndingHere;
            }
            if(maxEndingHere < 0){
                maxEndingHere = 0;
            }
        }
        return maxSoFar;
    }
};

Leave a comment