forked from learning-zone/java-basics
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMaximalSubarray.java
More file actions
24 lines (21 loc) · 555 Bytes
/
MaximalSubarray.java
File metadata and controls
24 lines (21 loc) · 555 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package misc;
public class MaximalSubarray {
private static int[] arr = {1, -2, 3, 4, -9, 6};
private int getMaxSubSum(int[] arr) {
int maxSum = 0;
int partialSum = 0;
for(int i = 0; i < arr.length; i++) {
partialSum += arr[i];
maxSum = Math.max(maxSum, partialSum);
if(partialSum < 0) {
partialSum = 0; // Zero if negative
}
}
return maxSum;
}
public static void main(String[] args) {
MaximalSubarray obj = new MaximalSubarray();
int sum = obj.getMaxSubSum(arr);
System.out.println("Sum: "+sum); // 3 + 4 = 7
}
}