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:
function solution(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 JavaScript
            
          
          
            
            
              Time spent on task 7 minutes
              
            
            
          
          
          
            
              
                
                  Notes
                  
                    
                  
                
               
              
                
              
              
                
                  
                    
                  
                  
                  
                  
                  
                    
                  
                  
                    
                      
                        
  
  
                      
                        
                          not defined yet
                        
                      
                      
                    
                    
                  
        Code: 20:41:59 UTC,
        
          java,
        
        
          autosave 
        
      
      
      
      
    
        Code: 20:48:01 UTC,
        
          js,
        
        
          autosave 
        
      
      
      
      
    // you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    const B = new Array(A.length).fill(false);
    let count = 0;
    for (let i = 0; i < A.length; i++) {
        const element = A[i];
        if (B[element-1] === false){
            B[element-1] = true;
            count ++;
        }
    }
    if (count === A.length){
        return 1;
    }
    return 0;
}
            
        Code: 20:48:03 UTC,
        
          js,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    const B = new Array(A.length).fill(false);
    let count = 0;
    for (let i = 0; i < A.length; i++) {
        const element = A[i];
        if (B[element-1] === false){
            B[element-1] = true;
            count ++;
        }
    }
    if (count === A.length){
        return 1;
    }
    return 0;
}
            
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 20:48:07 UTC,
        
          js,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    const B = new Array(A.length).fill(false);
    let count = 0;
    for (let i = 0; i < A.length; i++) {
        const element = A[i];
        if (B[element-1] === false){
            B[element-1] = true;
            count ++;
        }
    }
    if (count === A.length){
        return 1;
    }
    return 0;
}
            
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 20:48:09 UTC,
        
          js,
        
        
          final,
          
            score: 
              
                100
              
              
          
          
        
      
      
      
      
    // you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    const B = new Array(A.length).fill(false);
    let count = 0;
    for (let i = 0; i < A.length; i++) {
        const element = A[i];
        if (B[element-1] === false){
            B[element-1] = true;
            count ++;
        }
    }
    if (count === A.length){
        return 1;
    }
    return 0;
}
            Analysis summary
            
  The solution obtained perfect score.
          Analysis 
          
            
          
        
        
          
  
    
      Detected time complexity:
        
          O(N) or O(N * log(N))
        
        
      
        
          expand all 
        
        Correctness tests
      
      
        
        
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.088 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                4.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                4.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
            permutations_of_ranges
            
              
permutations of sets like [2..100] for which the anwsers should be false
          
            permutations of sets like [2..100] for which the anwsers should be false
✔
 
          
          
            OK
            
              
            
          
        
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
        
          expand all 
        
        Performance tests
      
      
        
        
                1.
              
              
              
                
                  0.084 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.084 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.104 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.072 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.084 s
                
              
              
              
                
                  OK
                
                
              
            
                4.
              
              
              
                
                  0.120 s
                
              
              
              
                
                  OK
                
                
              
            
                5.
              
              
              
                
                  0.116 s
                
              
              
              
                
                  OK