Tasks Details
  
    
    
      
        
           
        
          
        
       
      
        
          
          
          
          
            
              
                
        
        
          
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
       
    
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
       
    
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
            
        
    
  
  
  
    
       
    
       
    
      
      
          
            
              
              
            
             
              
             
           
        
      
        
          
          
        
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
       
    
  
          
            
          
        
       
    
   
 
                      
                    
                  
                
              
            
          
          
        
      
    
  
    
          easy
        
        
            1.
            
              PermCheck
            
          
          
            Check whether array A is a permutation.
          
        
  
    
    Task Score
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Correctness
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Performance
    
    
  
  
    
      
        
          
            
        
      
    
  
        
              100%
            
          A non-empty array A consisting of N integers is given.
A permutation is a sequence containing each element from 1 to N once, and only once.
For example, array A such that:
A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2is a permutation, but array A such that:
A[0] = 4 A[1] = 1 A[2] = 3is not a permutation, because value 2 is missing.
The goal is to check whether array A is a permutation.
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A, returns 1 if array A is a permutation and 0 if it is not.
For example, given array A such that:
A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2the function should return 1.
Given array A such that:
A[0] = 4 A[1] = 1 A[2] = 3the function should return 0.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [1..100,000];
- each element of array A is an integer within the range [1..1,000,000,000].
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 13 minutes
              
            
            
          
          
          
            
              
                
                  Notes
                  
                    
                  
                
               
              
                
              
              
                
                  
                    
                  
                  
                  
                  
                  
                    
                  
                  
                    
                      
                        
  
  
                      
                        
                          not defined yet
                        
                      
                      
                    
                    
                  
        Code: 23:51:57 UTC,
        
          java,
        
        
          verify,
          
            
              result: Failed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.math.*;
class Solution {
    public int solution(int[] A) {
        int[] counts = new int[A.length];
        for(int i = 0; i < A.length; i++)
        {
            if(A[i] > A.length)
            {
                return 0;
            }
            else if(counts[A[i]] > 0)
            {
                return 0;
            }
            else
            {
                counts[A[i]] = 1;
            }
        }
        return 0;
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  0.680 s
                
              
              
              
                
                  RUNTIME ERROR,
                  tested program terminated unexpectedly
                
                
              
            
                    
                    
                      stdout:
                      
                Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Solution.solution(Solution.java:13) at wrapper.run(wrapper.java:27) at wrapper.main(wrapper.java:20)
                1.
              
              
              
                
                  0.700 s
                
              
              
              
                
                  OK
                
                
              
            
        Code: 23:52:39 UTC,
        
          java,
        
        
          verify,
          
            
              result: Failed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.math.*;
class Solution {
    public int solution(int[] A) {
        int[] counts = new int[A.length];
        for(int i = 0; i < A.length; i++)
        {
            if(A[i] > A.length)
            {
                return 0;
            }
            else if(counts[A[i] - 1] > 0)
            {
                return 0;
            }
            else
            {
                counts[A[i] - 1] = 1;
            }
        }
        return 0;
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 23:54:11 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.math.*;
class Solution {
    public int solution(int[] A) {
        int[] counts = new int[A.length];
        for(int i = 0; i < A.length; i++)
        {
            if(A[i] > A.length)
            {
                return 0;
            }
            else if(counts[A[i] - 1] > 0)
            {
                return 0;
            }
            else
            {
                counts[A[i] - 1] = 1;
            }
        }
        return 1;
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 23:54:28 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.math.*;
class Solution {
    public int solution(int[] A) {
        int[] counts = new int[A.length];
        for(int i = 0; i < A.length; i++)
        {
            if(A[i] > A.length)
            {
                return 0;
            }
            else if(counts[A[i] - 1] > 0)
            {
                return 0;
            }
            else
            {
                counts[A[i] - 1] = 1;
            }
        }
        return 1;
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 23:54:36 UTC,
        
          java,
        
        
          final,
          
            score: 
              
                100
              
              
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.math.*;
class Solution {
    public int solution(int[] A) {
        int[] counts = new int[A.length];
        for(int i = 0; i < A.length; i++)
        {
            if(A[i] > A.length)
            {
                return 0;
            }
            else if(counts[A[i] - 1] > 0)
            {
                return 0;
            }
            else
            {
                counts[A[i] - 1] = 1;
            }
        }
        return 1;
    }
}
Analysis summary
            
  The solution obtained perfect score.
          Analysis 
          
            
          
        
        
          
  
    
      Detected time complexity:
        
          O(N) or O(N * log(N))
        
        
      
        
          expand all 
        
        Performance tests
      
      
        
        
                1.
              
              
              
                
                  0.700 s
                
              
              
              
                
                  OK
                
                
              
            
            antiSum2
            
              
total sum is corret (equals 1 + 2 + ... N), but it is not a permutation, N = ~100,000
          
            total sum is corret (equals 1 + 2 + ... N), but it is not a permutation, N = ~100,000
✔
 
          
          
            OK
            
              
            
          
        
                1.
              
              
              
                
                  0.870 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.870 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.890 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.790 s
                
              
              
              
                
                  OK