Merge pull request #12296 from anuragkumawat/JAVA-12383
JAVA-12383 GitHub Issue: Incorrect results in Kadane Algorithm for Maximal Subarray
This commit is contained in:
commit
673cbbadd8
@ -14,7 +14,7 @@ public class KadaneAlgorithm {
|
|||||||
int end = 0;
|
int end = 0;
|
||||||
|
|
||||||
int maxSoFar = arr[0], maxEndingHere = arr[0];
|
int maxSoFar = arr[0], maxEndingHere = arr[0];
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 1; i < size; i++) {
|
||||||
|
|
||||||
if (arr[i] > maxEndingHere + arr[i]) {
|
if (arr[i] > maxEndingHere + arr[i]) {
|
||||||
start = i;
|
start = i;
|
||||||
|
@ -27,4 +27,16 @@ class KadaneAlgorithmUnitTest {
|
|||||||
//then
|
//then
|
||||||
assertEquals(-1, maxSum);
|
assertEquals(-1, maxSum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenArrayWithAllPosiitveNumbersWhenMaximumSubarrayThenReturnsExpectedResult() {
|
||||||
|
//given
|
||||||
|
int[] arr = new int[] {4, 1, 3, 2};
|
||||||
|
//when
|
||||||
|
KadaneAlgorithm algorithm = new KadaneAlgorithm();
|
||||||
|
int maxSum = algorithm.maxSubArraySum(arr);
|
||||||
|
//then
|
||||||
|
assertEquals(10, maxSum);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user