Tuesday, March 23, 2021

Maximum Subsequence Sum OR 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.

 

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
Solution:
class Solution {
    public int maxSubArray(int[] nums) {        
        int maxSum = nums[0], tempSum=nums[0];
        for(int i=1; i<nums.length; i++) {
            tempSum = nums[i]+Math.max(0, tempSum);
            if(tempSum>maxSum){
                maxSum = tempSum;
            }
        }
        return maxSum;
    }
}

No comments:

Post a Comment