comefrom: <awangdev>41. First Missing Positive_1.java
code: public int firstMissingPositive(int[] nums) {
          if (nums == null || nums.length == 0) {
              return 1;
          }
          if (nums.length == 1) {
              return nums[0] == 1 ? 2 : 1;
          }
          int n = nums.length;
          int i = 0;
          while (i < n) {
              int val = nums[i];
              if (val != i && val >= 0 && val < n && val != nums[val]) { 
                  int temp = nums[val];
                  nums[val] = nums[i];
                  nums[i] = temp;
              } else {
                  i++;
              }
          }
  
          for (i = 1; i < n; i++) {
              if (nums[i] != i) {
                  return i;
              }
          }
          
          if (nums[0] == n) {
              return n + 1;
          }
  
          return n;
      }
masked: public int sample_funcname ( int [ ] var_0 ) {
    if ( var_0 == null || var_0 . length == 0 ) {
      return 1 ;
    }
    if ( var_0 . length == 1 ) {
      return var_0 [ 0 ] == 1 ? 2 : 1 ;
    }
    int var_1 = var_0 . length ;
    int var_2 = 0 ;
    while ( var_2 < var_1 ) {
      int var_3 = var_0 [ var_2 ] ;
      if ( var_3 != var_2 && var_3 >= 0 && var_3 < var_1 && var_3 != var_0 [ var_3 ] ) {
        int var_4 = var_0 [ var_3 ] ;
        var_0 [ var_3 ] = var_0 [ var_2 ] ;
        var_0 [ var_2 ] = var_4 ;
      }
      else {
        var_2 ++ ;
      }
    }
    for ( var_2 = 1 ;
    var_2 < var_1 ;
    var_2 ++ ) {
      if ( var_0 [ var_2 ] != var_2 ) {
        return var_2 ;
      }
    }
    if ( var_0 [ 0 ] == var_1 ) {
      return var_1 + 1 ;
    }
    return var_1 ;
  }
  