Tasks Details
  
    
    
      
        
          
        
       
      
        
          
          
          
          
            
              
                
        
        
          
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
            
        
    
  
  
  
    
       
    
      
      
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
          
            
              
              
            
             
              
             
           
        
      
        
        
          
            
              
              
            
             
              
             
           
        
      
       
    
  
          
            
          
        
       
    
   
 
                      
                    
                  
                
              
            
          
          
        
      
    
  
    
          medium
        
        
          
          
            Find the smallest positive integer that does not occur in a given sequence.
          
        
 
        
  
    
    Task Score
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Correctness
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Performance
    
    
  
  
    
      
        
          
            
        
      
    
  
        
              100%
            
          This is a demo task.
Write a function:
class Solution { public int solution(int[] A); }
that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A.
For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5.
Given A = [1, 2, 3], the function should return 4.
Given A = [−1, −3], the function should return 1.
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,000,000..1,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 1 minutes
              
            
            
          
          
          
            
              
                
                  Notes
                  
                    
                  
                
               
              
                
              
              
                
                  
                    
                  
                  
                  
                  
                  
                    
                  
                  
                    
                      
                        
  
  
                      
                        
                          not defined yet
                        
                      
                      
                    
                    
                  
        Code: 09:09:45 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) {
        boolean[] B = new boolean[1000001];
        java.util.Arrays.fill(B, false);
        for (int i = 0; i < A.length; i++) {
            if (A[i] > 0) {
                B[A[i]] = true;
            }
        }
        for (int j = 1; j < B.length; j++) {
            if (!B[j]) return j;
        }
        return 1000001;
    }
}
            
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 09:09:50 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) {
        boolean[] B = new boolean[1000001];
        java.util.Arrays.fill(B, false);
        for (int i = 0; i < A.length; i++) {
            if (A[i] > 0) {
                B[A[i]] = true;
            }
        }
        for (int j = 1; j < B.length; j++) {
            if (!B[j]) return j;
        }
        return 1000001;
    }
}
            Analysis summary
            
  The solution obtained perfect score.
          Analysis 
          
            
          
        
        
          
  
    
      Detected time complexity:
        
          O(N) or O(N * log(N))
        
        
      
        
          expand all 
        
        Correctness tests
      
      
        
        
                1.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.016 s
                
              
              
              
                
                  OK
                
                
              
            
                4.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.016 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.020 s
                
              
              
              
                
                  OK
                
                
              
            
        
          expand all 
        
        Performance tests
      
      
        
        
                1.
              
              
              
                
                  0.040 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.036 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.048 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.236 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.264 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.260 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.188 s
                
              
              
              
                
                  OK