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 8
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