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 13 minutes
              
            
            
          
          
          
            
              
                
                  Notes
                  
                    
                  
                
               
              
                
              
              
                
                  
                    
                  
                  
                  
                  
                  
                    
                  
                  
                    
                      
                        
  
  
                      
                        
                          not defined yet
                        
                      
                      
                    
                    
                  
        Code: 06:07:44 UTC,
        
          java,
        
        
          autosave 
        
      
      
      
      
    
        Code: 06:19:41 UTC,
        
          swift4,
        
        
          autosave 
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index+1
    }
    
    return -1
}
        Code: 06:19:42 UTC,
        
          swift4,
        
        
          verify,
          
            
              result: Failed
            
          
          
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index+1
    }
    
    return -1
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  WRONG ANSWER,
                  got 6 expected 5
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  WRONG ANSWER,
                  got -1 expected 4
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  WRONG ANSWER,
                  got 2 expected 1
                
                
              
            
        Code: 06:19:53 UTC,
        
          swift4,
        
        
          autosave 
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index
    }
    
    return -1
}
        Code: 06:20:21 UTC,
        
          swift4,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index
    }
    
    return A.count+1
}
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 06:20:36 UTC,
        
          swift4,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index
    }
    
    return A.count+1
}
          Analysis 
          
            
          
        
        
          
  
  
  
        Code: 06:20:41 UTC,
        
          swift4,
        
        
          final,
          
            score: 
              
                100
              
              
          
          
        
      
      
      
      
    import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ A : inout [Int]) -> Int {
    var dictionary = [Int: Bool]()
    
    for item in A {
        dictionary[item] = true
    }
    
    for index in 1...A.count {
        if let check = dictionary[index], check == true {
            continue
        }
        
        return index
    }
    
    return A.count+1
}Analysis summary
            
  The solution obtained perfect score.
          Analysis 
          
            
          
        
        
          
  
    
      Detected time complexity:
        
          O(N) or O(N * log(N))
        
        
      
        
          expand all 
        
        Correctness tests
      
      
        
        
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                4.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
        
          expand all 
        
        Performance tests
      
      
        
        
                1.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.024 s
                
              
              
              
                
                  OK
                
                
              
            
                3.
              
              
              
                
                  0.028 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.044 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.056 s
                
              
              
              
                
                  OK
                
                
              
            
                2.
              
              
              
                
                  0.056 s
                
              
              
              
                
                  OK
                
                
              
            
                1.
              
              
              
                
                  0.036 s
                
              
              
              
                
                  OK