Tasks Details
easy
Find the missing element in a given permutation.
Task Score
100%
Correctness
Not assessed
Performance
Not assessed
An array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing.
Your goal is to find that missing element.
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A, returns the value of the missing element.
For example, given array A such that:
A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5the function should return 4, as it is the missing element.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [0..100,000];
- the elements of A are all distinct;
- each element of array A is an integer within the range [1..(N + 1)].
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 61 minutes
Notes
not defined yet
Code: 08:06:52 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class CompareArrays {
public static void main(String[] args) {
int[] A = { 1, 2, 3, 4, 5 };
int[] B = { 3, 1, 2, 5 };
int i, n = 5, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
System.out.println("Missing Element is: " + (sum1 - sum2));
}
}
Analysis
Compile error
./Solution.java:6: duplicate class: CompareArrays class CompareArrays { ^ wrapper.java:26: cannot access Solution bad class file: RegularFileObject[./Solution.java] file does not contain class Solution Please remove or make sure it appears in the correct subdirectory of the classpath. Solution sol = new Solution(); ^ 2 errors
Code: 08:10:15 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int[] B = int[] A;
int n = length.B + 1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
System.out.println("Missing Element is: " + (sum1 - sum2));
}
}
Analysis
Compile error
Solution.java:5: '.class' expected int[] B = int[] A; ^ 1 error
Code: 08:23:20 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
iint length = A.length;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
System.out.println("Missing Element is: " + (sum1 - sum2));
}
}
Analysis
Compile error
Solution.java:5: cannot find symbol symbol : class iint location: class Solution iint length = A.length; ^ Solution.java:7: operator + cannot be applied to iint,int B = new int[length+1]; ^ Solution.java:7: incompatible types found : <nulltype> required: int B = new int[length+1]; ^ Solution.java:12: operator + cannot be applied to iint,int int n = length +1; ^ Solution.java:12: incompatible types found : <nulltype> required: int int n = length +1; ^ 5 errors
Code: 08:23:41 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
System.out.println("Missing Element is: " + (sum1 - sum2));
}
}
Analysis
Compile error
Solution.java:21: missing return statement } ^ 1 error
Code: 08:24:07 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
return (sum1 - sum2);
}
}
Analysis
expand all
Example tests
1.
0.310 s
RUNTIME ERROR,
tested program terminated unexpectedly
stdout:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Solution.solution(Solution.java:15) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
Code: 08:29:40 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
int result = sum1 - sum2;
// System.out.println("Missing Element is: " + (sum1 - sum2));
return result;
}
}
Analysis
expand all
Example tests
1.
0.300 s
RUNTIME ERROR,
tested program terminated unexpectedly
stdout:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Solution.solution(Solution.java:16) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
Code: 08:48:33 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
int result = sum1 - sum2;
return result;
}
}
Analysis
expand all
Example tests
1.
0.310 s
RUNTIME ERROR,
tested program terminated unexpectedly
stdout:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Solution.solution(Solution.java:15) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
Code: 08:49:51 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int result = 0;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 1; i++) {
sum1 = sum1 + A[i];
if (i <= n - 2) {
sum2 = sum2 + B[i];
}
}
result = sum1 - sum2;
return result;
}
}
Analysis
expand all
Example tests
1.
0.330 s
RUNTIME ERROR,
tested program terminated unexpectedly
stdout:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Solution.solution(Solution.java:16) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
Code: 08:52:27 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int length = A.length;
int result = 0;
int[] B;
B = new int[length+1];
for(int i=0; i<= length; i++)
{
B[i] = i;
}
int n = length +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 2; i++) {
sum1 = sum1 + A[i];
if (i <= n - 1) {
sum2 = sum2 + B[i];
}
}
result = sum2 - sum1;
return result;
}
}
Analysis
expand all
Example tests
1.
0.300 s
WRONG ANSWER,
got -5 expected 4
Code: 08:54:43 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= len; i++)
{
B[i] = i;
}
int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 2; i++) {
sum1 = sum1 + A[i];
if (i <= n - 1) {
sum2 = sum2 + B[i];
}
}
result = sum2 - sum1;
return result;
}
}
Analysis
expand all
Example tests
1.
0.300 s
WRONG ANSWER,
got -5 expected 4
Code: 08:55:34 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length; i++)
{
B[i] = i+1;
}
int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 2; i++) {
sum1 = sum1 + A[i];
if (i <= n - 1) {
sum2 = sum2 + B[i];
}
}
result = sum2 - sum1;
return result;
}
}
Analysis
expand all
Example tests
1.
0.310 s
RUNTIME ERROR,
tested program terminated unexpectedly
stdout:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Solution.solution(Solution.java:11) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
Code: 08:56:03 UTC,
java,
verify,
result: Failed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= n - 2; i++) {
sum1 = sum1 + A[i];
if (i <= n - 1) {
sum2 = sum2 + B[i];
}
}
result = sum2 - sum1;
return result;
}
}
Analysis
expand all
Example tests
1.
0.300 s
WRONG ANSWER,
got -1 expected 4
Code: 08:59:39 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
// int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= A.length-1; i++) {
sum1 = sum1 + A[i];
}
for (i = 0; i <= B.length-1; i++) {
sum2 = sum2 + B[i];
}
result = sum2 - sum1;
return result;
}
}
Analysis
Code: 09:00:11 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
// int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= A.length-1; i++) {
sum1 = sum1 + A[i];
}
for (i = 0; i <= B.length-1; i++) {
sum2 = sum2 + B[i];
}
result = sum2 - sum1;
return result;
}
}
Analysis
Code: 09:01:24 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
// int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= A.length-1; i++) {
sum1 = sum1 + A[i];
}
for (i = 0; i <= B.length-1; i++) {
sum2 = sum2 + B[i];
}
result = sum2 - sum1;
return result;
}
}
Analysis
Code: 09:01:44 UTC,
java,
verify,
result: Passed
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
// int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= A.length-1; i++) {
sum1 = sum1 + A[i];
}
for (i = 0; i <= B.length-1; i++) {
sum2 = sum2 + B[i];
}
result = sum2 - sum1;
return result;
}
}
Analysis
Code: 09:01:52 UTC,
java,
final,
score: 
100
// you can also use imports, for example:
import java.util.*;
class Solution {
public int solution(int[] A) {
int len = A.length;
int result = 0;
int[] B;
B = new int[len+1];
for(int i=0; i<= B.length-1; i++)
{
B[i] = i+1;
}
// int n = len +1;
int i, sum1 = 0, sum2 = 0;
for (i = 0; i <= A.length-1; i++) {
sum1 = sum1 + A[i];
}
for (i = 0; i <= B.length-1; i++) {
sum2 = sum2 + B[i];
}
result = sum2 - sum1;
return result;
}
}
Analysis summary
The solution obtained perfect score.
Analysis
Detected time complexity:
O(N) or O(N * log(N))
expand all
Assessment tests
1.
0.310 s
OK
1.
0.300 s
OK
1.
0.310 s
OK
1.
0.310 s
OK
1.
0.320 s
OK
1.
0.310 s
OK
1.
0.320 s
OK
1.
0.320 s
OK
1.
0.320 s
OK