Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static int altKadanes(int[] array, int sign) {
- int maxCurrent = 0;
- int maxGlobal = maxCurrent;
- for(int i = 0; i < array.length; i++) {
- int signedVal = (array[i])*((int)(Math.pow(-1,(i + sign))));
- maxCurrent = Math.max(signedVal, maxCurrent + signedVal);
- if(maxCurrent > maxGlobal) {
- maxGlobal = maxCurrent;
- }
- }
- return maxGlobal;
- }
- public static int alternateSum(int[] array)
- {
- int firstMax = altKadanes(array,0);
- int secondMax = altKadanes(array, 1);
- return Math.max(firstMax, secondMax);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement