Here is another codility problem solution from the codility lessons (MaxDoubleSliceSum -Find the maximal sum of any double slice.) due to the copy rights I can't copy the content of the problem here so to view the problem description click here.
// you can also use imports, for example: import java.util.*; // you can use System.out.println for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int solution(int[] A) { int[] fromLiftDoubleSlices = new int[A.length]; int[] fromRightDoubleSlices = new int[A.length]; int max_ending = 0; for (int i = 1; i < A.length - 1; i++) { max_ending = Math.max(0, max_ending + A[i]); fromLiftDoubleSlices[i] = max_ending; } max_ending = 0; for (int i = A.length - 2; i > 0; i--) { max_ending = Math.max(0, max_ending + A[i]); fromRightDoubleSlices[i] = max_ending; } int maxSum = 0; for (int i = 1; i < A.length - 1; i++) { maxSum = Math.max(maxSum, fromLiftDoubleSlices[i - 1] + fromRightDoubleSlices[i + 1]); } return maxSum; } }
No comments:
Post a Comment