BAEL3455 Max subarray problem
This commit is contained in:
parent
9a8aadf125
commit
c2b71c2d33
@ -1,7 +1,12 @@
|
|||||||
package com.baeldung.algorithms.subarray.maximum;
|
package com.baeldung.algorithms.maximumsubarray;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class BruteForceAlgorithm {
|
public class BruteForceAlgorithm {
|
||||||
|
|
||||||
|
private Logger logger = LoggerFactory.getLogger(BruteForceAlgorithm.class.getName());
|
||||||
|
|
||||||
public int maxSubArray(int[] arr) {
|
public int maxSubArray(int[] arr) {
|
||||||
|
|
||||||
int size = arr.length;
|
int size = arr.length;
|
||||||
@ -23,7 +28,7 @@ public class BruteForceAlgorithm {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Found Maximum Subarray between " + start + " and " + end);
|
logger.info("Found Maximum Subarray between {} and {}", start, end);
|
||||||
return maximumSubArraySum;
|
return maximumSubArraySum;
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,12 @@
|
|||||||
package com.baeldung.algorithms.subarray.maximum;
|
package com.baeldung.algorithms.maximumsubarray;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class KadaneAlgorithm {
|
public class KadaneAlgorithm {
|
||||||
|
|
||||||
|
private Logger logger = LoggerFactory.getLogger(BruteForceAlgorithm.class.getName());
|
||||||
|
|
||||||
public int maxSubArraySum(int[] arr) {
|
public int maxSubArraySum(int[] arr) {
|
||||||
|
|
||||||
int size = arr.length;
|
int size = arr.length;
|
||||||
@ -23,7 +28,7 @@ public class KadaneAlgorithm {
|
|||||||
end = i;
|
end = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Found Maximum Subarray between " + start + " and " + end);
|
logger.info("Found Maximum Subarray between {} and {}", start, end);
|
||||||
return maxSoFar;
|
return maxSoFar;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,24 +1,19 @@
|
|||||||
package com.baeldung.algorithms.subarray.maximum;
|
package com.baeldung.algorithms.maximumsubarray;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
class BruteForceAlgorithmUnitTest {
|
class BruteForceAlgorithmTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() {
|
void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() {
|
||||||
//given
|
//given
|
||||||
int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5};
|
int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5};
|
||||||
|
|
||||||
//when
|
//when
|
||||||
BruteForceAlgorithm algorithm = new BruteForceAlgorithm();
|
BruteForceAlgorithm algorithm = new BruteForceAlgorithm();
|
||||||
int maximumSum = algorithm.maxSubArray(arr);
|
int maximumSum = algorithm.maxSubArray(arr);
|
||||||
|
|
||||||
//then
|
//then
|
||||||
assertEquals(6, maximumSum);
|
assertEquals(6, maximumSum);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,23 +1,19 @@
|
|||||||
package com.baeldung.algorithms.subarray.maximum;
|
package com.baeldung.algorithms.maximumsubarray;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
class KadaneAlgorithmUnitTest {
|
class KadaneAlgorithmTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() {
|
void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() {
|
||||||
//given
|
//given
|
||||||
int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5};
|
int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5};
|
||||||
|
|
||||||
//when
|
//when
|
||||||
KadaneAlgorithm algorithm = new KadaneAlgorithm();
|
KadaneAlgorithm algorithm = new KadaneAlgorithm();
|
||||||
int maxSum = algorithm.maxSubArraySum(arr);
|
int maxSum = algorithm.maxSubArraySum(arr);
|
||||||
|
|
||||||
//then
|
//then
|
||||||
assertEquals(6, maxSum);
|
assertEquals(6, maxSum);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user