xxxxxxxxxx
// Java program to print largest
// contiguous array sum
class GFG {
static void maxSubArraySum(int a[], int size)
{
int max_so_far = Integer.MIN_VALUE,
max_ending_here = 0,start = 0,
end = 0, s = 0;
for (int 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;
}
}
System.out.println("Maximum contiguous sum is "
+ max_so_far);
System.out.println("Starting index " + start);
System.out.println("Ending index " + end);
}
// Driver code
public static void main(String[] args)
{
int a[] = { -2, -3, 4, -1, -2, 1, 5, -3 };
int n = a.length;
maxSubArraySum(a, n);
}
}
// This code is contributed by prerna saini
xxxxxxxxxx
#include <iostream>
using namespace std;
int main(){
//Input Array
int n;
cin >> n;
int arr[n];
for(int i =0;i< n;i++){
cin >> arr[i];
}
int currentSum = 0;
int maxSum = INT_MIN;
//algo
for (int i = 0; i < n; i++)
{
currentSum += arr[i];
if (currentSum <0)
{
currentSum = 0;
}
maxSum = max(maxSum, currentSum);
}
cout << maxSum << endl;
return 0;
}
xxxxxxxxxx
def maxSubArray(self, nums: List[int]) -> int:
curr_best = overall_best = nums[0]
for i in range(1,len(nums)):
if curr_best>=0:
curr_best = curr_best + nums[i]
else:
curr_best = nums[i]
if curr_best > overall_best:
overall_best = curr_best
return overall_best
xxxxxxxxxx
def max_subarray_sum(arr):
max_sum = float('-inf')
curr_sum = 0
start = end = 0
for i in range(len(arr)):
curr_sum += arr[i]
if curr_sum > max_sum:
max_sum = curr_sum
end = i
if curr_sum < 0:
curr_sum = 0
start = i + 1
subarray = arr[start:end+1]
return subarray, max_sum
# Example usage
arr = [-2, -3, 4, -1, -2, 1, 5, -3]
subarray, max_sum = max_subarray_sum(arr)
print("Subarray with maximum sum:", subarray)
print("Maximum sum:", max_sum)
xxxxxxxxxx
public static int SumArray()
{
var arr = new int[]{ -2, -4, -5, -6, -7, -89, -56 };
var sum = 0;
var max = arr[0];
foreach (var item in arr)
{
sum += item;
// sum = Math.Max(sum,0); resting here will not give expected output
max = Math.Max(sum,max);
sum = Math.Max(sum,0);
}
return max;
}
xxxxxxxxxx
var maxSequence = function(arr){
var min = 0, ans = 0, i, sum = 0;
for (i = 0; i < arr.length; ++i) {
sum += arr[i];
min = Math.min(sum, min);
ans = Math.max(ans, sum - min);
}
return ans;
}
xxxxxxxxxx
Input:
N = 8
A[] = {15,-2,2,-8,1,7,10,23}
Output: 5
Explanation: The largest subarray with
sum 0 will be -2 2 -8 1 7.
xxxxxxxxxx
static void update(int arr[], int arrSize, int index, int value)
{
// Your code here
arr[index-1]=value;
}
//Funciton to return the Maximum-Sum in the range.
static int query(int arr[], int n, int left, int right)
{
// code here
int curr=arr[left-1];
int sum=arr[left-1];
for (int i=left;i<right;i++){
sum=Math.max(arr[i], sum+arr[i]);
curr=Math.max(curr,sum);
}
return curr;
}