Open In App

PHP Program to Find the Size of Subarray With Maximum Sum

Last Updated : 22 Jul, 2024
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

Given an Array, the task is to find the size of the subarray that yields the maximum sum. This article provides a comprehensive guide on how to implement a PHP program to solve this problem efficiently.

Examples: 

Input: Arr = [ 1, -2, 1, 1, -2, 1 ]
Output: Length of the subarray is 2
Explanation: The subarray with consecutive elements
and maximum sum is [ 1, 1 ]. So the length is 2.

Input: Arr = [ -2, -3, 4, -1, -2, 1, 5, -3 ]
Output: Length of the subarray is 5
Explanation: The subarray with consecutive elements
and maximum sum is [ 4, -1, -2, 1, 5 ].

This problem is mainly a variation of Largest Sum Contiguous Subarray Problem. The idea is to update starting index whenever sum ending here becomes less than 0.

PHP
<?php
  
// Function to find the maximum contiguous 
// subarray and print its starting and end
// index
function maxSubArraySum($a, $size) {
    $max_so_far = PHP_INT_MIN;
    $max_ending_here = 0;
    $start = 0;
    $end = 0;
    $s = 0;

    for ($i = 0; $i < $size; $i++) {
        $max_ending_here += $a[$i];

        if ($max_so_far < $max_ending_here) {
            $max_so_far = $max_ending_here;
            $start = $s;
            $end = $i;
        }

        if ($max_ending_here < 0) {
            $max_ending_here = 0;
            $s = $i + 1;
        }
    }

    return ($end - $start + 1);
}

// Driver program to test maxSubArraySum
$a = [-2, -3, 4, -1, -2, 1, 5, -3];
$n = count($a);

echo maxSubArraySum($a, $n);

?>

Output
5

Time Complexity: O(N) where N is size of the input array. This is because a for loop is executing from 1 to size of the array.

Space Complexity: O(1) as no extra space has been taken.

Please refer complete article on Size of The Subarray With Maximum Sum for more details!


Article Tags :

Similar Reads