comefrom: <gouthampradhan>binary_search_SingleElementInASortedArray_1.java
code: public int singleNonDuplicate(int[] nums) {
      if (nums.length == 1) return nums[0];
      int l = 0, h = nums.length - 1;
      while (l <= h) {
        int m = l + ((h - l) / 2);
        int N = nums[m];
        if (m + 1 >= nums.length) {
          if (nums[m - 1] != N) {
            return N;
          }
          h = m - 1;
        } else if (m - 1 < 0) {
          if (nums[m + 1] != N) {
            return N;
          }
          l = m + 1;
        } else {
          if (m % 2 == 0) {
            if (nums[m + 1] != N && nums[m - 1] != N) {
              return N;
            } else if (nums[m + 1] != N) {
              h = m - 1;
            } else l = m + 1;
          } else {
            if (nums[m + 1] != N && nums[m - 1] != N) {
              return N;
            } else if (nums[m - 1] != N) {
              h = m - 1;
            } else l = m + 1;
          }
        }
      }
      return -1;
    }
masked: public int sample_funcname ( int [ ] var_0 ) {
    if ( var_0 . length == 1 ) return var_0 [ 0 ] ;
    int var_1 = 0 , var_2 = var_0 . length - 1 ;
    while ( var_1 <= var_2 ) {
      int var_3 = var_1 + ( ( var_2 - var_1 ) / 2 ) ;
      int var_4 = var_0 [ var_3 ] ;
      if ( var_3 + 1 >= var_0 . length ) {
        if ( var_0 [ var_3 - 1 ] != var_4 ) {
          return var_4 ;
        }
        var_2 = var_3 - 1 ;
      }
      else if ( var_3 - 1 < 0 ) {
        if ( var_0 [ var_3 + 1 ] != var_4 ) {
          return var_4 ;
        }
        var_1 = var_3 + 1 ;
      }
      else {
        if ( var_3 % 2 == 0 ) {
          if ( var_0 [ var_3 + 1 ] != var_4 && var_0 [ var_3 - 1 ] != var_4 ) {
            return var_4 ;
          }
          else if ( var_0 [ var_3 + 1 ] != var_4 ) {
            var_2 = var_3 - 1 ;
          }
          else var_1 = var_3 + 1 ;
        }
        else {
          if ( var_0 [ var_3 + 1 ] != var_4 && var_0 [ var_3 - 1 ] != var_4 ) {
            return var_4 ;
          }
          else if ( var_0 [ var_3 - 1 ] != var_4 ) {
            var_2 = var_3 - 1 ;
          }
          else var_1 = var_3 + 1 ;
        }
      }
    }
    return - 1 ;
  }
  