Advertisement
Guest User

alternateSum_O(n)

a guest
Nov 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. private static int altKadanes(int[] array, int sign) {
  2. int maxCurrent = 0;
  3. int maxGlobal = maxCurrent;
  4. for(int i = 0; i < array.length; i++) {
  5. int signedVal = (array[i])*((int)(Math.pow(-1,(i + sign))));
  6. maxCurrent = Math.max(signedVal, maxCurrent + signedVal);
  7. if(maxCurrent > maxGlobal) {
  8. maxGlobal = maxCurrent;
  9. }
  10. }
  11. return maxGlobal;
  12. }
  13.  
  14. public static int alternateSum(int[] array)
  15. {
  16. int firstMax = altKadanes(array,0);
  17. int secondMax = altKadanes(array, 1);
  18.  
  19. return Math.max(firstMax, secondMax);
  20.  
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement