Here is another codility problem solution from the codility lessons (MaxSliceSum - Find a maximum sum of a compact subsequence of array elements.
) due to the copy rights I can't copy the content of the problem here so to view the problem description click here.
Please be aware that the following code scores 92% only failed in on test case so if you could find where is the bug I will be glade to tell me.
Please be aware that the following code scores 92% only failed in on test case so if you could find where is the bug I will be glade to tell me.
class Solution {
public int solution(int[] A) {
// write your code in Java SE 8
int sum = 0;
int maxPosSeries = Integer.MIN_VALUE;
int sumPos = 0;
int maxVal = Integer.MIN_VALUE;
boolean isPosFound = false;
boolean containsPos = false;
for (int i = 0; i < A.length; i++) {
sum += A[i];
maxVal = Math.max(maxVal, A[i]);
if (A[i] >= 0) {
isPosFound = true;
containsPos = true;
sumPos += A[i];
maxPosSeries = Math.max(sumPos, maxPosSeries);
} else if (A[i] < 0) {
sumPos = 0;
isPosFound = false;
}
}
int min = Integer.MAX_VALUE;
int ans = 0;
int commulativeSUm = 0;
for (int i = 0; i < A.length; i++) {
commulativeSUm += A[i];
int def = sum - (commulativeSUm);
if (def < min) {
min = def;
ans = commulativeSUm;
}
}
if (!containsPos) return maxVal;
return Math.max(ans, maxPosSeries);
}
}
No comments:
Post a Comment