title: Find the smallest positive integer that does not occur in a given sequence
body: <p>I was trying to solve this problem:</p>
  <blockquote>
  <p>Write a function:</p>
  <pre><code>class Solution { public int solution(int[] A); }
  </code></pre>
  <p>that, given an array A of N integers, returns the smallest positive
  integer (greater than 0) that does not occur in A.</p>
  <p>For example, given A = [1, 3, 6, 4, 1, 2], the function should return
  5.</p>
  <pre><code>Given A = [1, 2, 3], the function should return 4.
  
  Given A = [−1, −3], the function should return 1.
  </code></pre>
  <p>Assume that:</p>
  <p>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]. Complexity:</p>
  <p>expected worst-case time complexity is O(N); expected worst-case space
  complexity is O(N) (not counting the storage required for input
  arguments).</p>
  </blockquote>
  <p>I wrote the solution below which gives a low performance, however, I can't see the bug.</p>
  <pre class="lang-java prettyprint-override"><code>public static int solution(int[] A) {
  
          Set&lt;Integer&gt; set = new TreeSet&lt;&gt;();
  
          for (int a : A) {
              set.add(a);
          }
  
          int N = set.size();
  
          int[] C = new int[N];
  
          int index = 0;
  
          for (int a : set) {
              C[index++] = a;
          }
  
          for (int i = 0; i &lt; N; i++) {
  
              if (C[i] &gt; 0 &amp;&amp; C[i] &lt;= N) {
                  C[i] = 0;
              }
          }
  
          for (int i = 0; i &lt; N; i++) {
  
              if (C[i] != 0) {
                  return (i + 1);
              }
          }
  
          return (N + 1);
      }
  
  </code></pre>
  <p>The score is provided here,</p>
  <p><a href="https://i.stack.imgur.com/MCM7v.png" rel="noreferrer"><img src="https://i.stack.imgur.com/MCM7v.png" alt="enter image description here" /></a></p>
  <p>I will keep investigating myself, but please inform me if you can see better.</p>