Tasks Details
easy
1.
MaxSliceSum
Find a maximum sum of a compact subsequence of array elements.
Task Score
100%
Correctness
100%
Performance
100%
A non-empty array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P ≤ Q < N, is called a slice of array A. The sum of a slice (P, Q) is the total of A[P] + A[P+1] + ... + A[Q].
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A consisting of N integers, returns the maximum sum of any slice of A.
For example, given array A such that:
A[0] = 3 A[1] = 2 A[2] = -6 A[3] = 4 A[4] = 0the function should return 5 because:
- (3, 4) is a slice of A that has sum 4,
- (2, 2) is a slice of A that has sum −6,
- (0, 1) is a slice of A that has sum 5,
- no other slice of A has sum greater than (0, 1).
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [1..1,000,000];
- each element of array A is an integer within the range [−1,000,000..1,000,000];
- the result will be an integer within the range [−2,147,483,648..2,147,483,647].
Copyright 2009–2025 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
Solution
Programming language used Java 21
Time spent on task 14 minutes
Notes
not defined yet
Code: 03:55:49 UTC,
java,
autosave
Code: 03:56:26 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
// write your code in Java SE 8
for(int i=0; i<A.length; i++){
}
}
}
Code: 03:56:42 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int maxSum = A[0];
// write your code in Java SE 8
for(int i=0; i<A.length; i++){
}
}
}
Code: 03:56:57 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int maxSum = 0;
// write your code in Java SE 8
for(int i=0; i<A.length; i++){
}
}
}
Code: 03:57:07 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int maxSum = 0;
// write your code in Java SE 8
for(int i=0; i<A.length; i++){
if()
}
}
}
Code: 03:57:27 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int maxSum = 0;
// write your code in Java SE 8
for(int i=0; i<A.length; i++){
if(A[i] >= 0){
maxSum
}
}
}
}
Code: 04:08:42 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length === 1) return A[0];
let localMaxSum = A[0];
let globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum
}
}
Code: 04:08:53 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length === 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum
}
}
Analysis
Compile error
Solution.java:9: error: illegal start of expression if(A.length === 1) return A[0]; ^ Solution.java:19: error: ';' expected return globalMaxSum ^ 2 errors
Code: 04:08:56 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length === 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum
}
Analysis
Compile error
Solution.java:9: error: illegal start of expression if(A.length === 1) return A[0]; ^ Solution.java:19: error: ';' expected return globalMaxSum ^ Solution.java:21: error: reached end of file while parsing } ^ 3 errors
Code: 04:09:02 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum
}
Analysis
Compile error
Solution.java:19: error: ';' expected return globalMaxSum ^ Solution.java:21: error: reached end of file while parsing } ^ 2 errors
Code: 04:09:08 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
Analysis
Compile error
Solution.java:21: error: reached end of file while parsing } ^ 1 error
Code: 04:09:14 UTC,
java,
autosave
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
}
Code: 04:09:17 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
}
Analysis
Compile error
Solution.java:14: error: cannot find symbol for(let i = 1 ; i < A.length; i++) { ^ symbol: class let location: class Solution 1 error
Code: 04:09:25 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(int i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
}
Analysis
Code: 04:09:32 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(int i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
}
Analysis
Code: 04:09:36 UTC,
java,
final,
score: 
100
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
if(A.length == 1) return A[0];
int localMaxSum = A[0];
int globalMaxSum = A[0];
for(int i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum;
}
}
Analysis summary
The solution obtained perfect score.
Analysis
Detected time complexity:
O(N)
expand all
Correctness tests
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
1.
0.004 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
7.
0.004 s
OK
8.
0.004 s
OK
9.
0.004 s
OK
1.
0.008 s
OK
2.
0.004 s
OK
3.
0.004 s
OK
4.
0.004 s
OK
5.
0.004 s
OK
6.
0.004 s
OK
7.
0.004 s
OK
8.
0.004 s
OK
9.
0.004 s
OK
10.
0.004 s
OK
11.
0.004 s
OK
12.
0.004 s
OK
13.
0.004 s
OK
14.
0.004 s
OK
15.
0.004 s
OK
16.
0.008 s
OK
17.
0.004 s
OK
18.
0.008 s
OK
19.
0.004 s
OK
20.
0.004 s
OK
21.
0.004 s
OK
22.
0.004 s
OK
23.
0.008 s
OK
24.
0.004 s
OK
25.
0.004 s
OK
26.
0.004 s
OK
27.
0.004 s
OK
1.
0.004 s
OK
1.
0.004 s
OK
1.
0.004 s
OK
1.
0.008 s
OK
1.
0.004 s
OK