comefrom: <awangdev>42. Trapping Rain Water_3.java
code: public int trap(int[] heights) {
          if (heights == null || heights.length == 0) return 0;
  
          int maxIndex = 0;
          for (int i = 0; i < heights.length; i++) {
              if (heights[i] > heights[maxIndex]) maxIndex = i;
          }
  
          int sum = 0, prev = 0;
          for (int i = 0; i < maxIndex; i++) {
              if (heights[i] > prev) {
                  sum += (maxIndex - i) * (heights[i] - prev);
                  prev = heights[i];
              }
              sum -= heights[i];
          }
  
          prev = 0;
          for (int i = heights.length - 1; i > maxIndex; i--) {
              if (heights[i] > prev) {
                  sum += (i - maxIndex) * (heights[i] - prev);
                  prev = heights[i];
              }
              sum -= heights[i];
          }
  
          return sum;
      }
masked: public int sample_funcname ( int [ ] var_0 ) {
    if ( var_0 == null || var_0 . length == 0 ) return 0 ;
    int var_1 = 0 ;
    for ( int var_2 = 0 ;
    var_2 < var_0 . length ;
    var_2 ++ ) {
      if ( var_0 [ var_2 ] > var_0 [ var_1 ] ) var_1 = var_2 ;
    }
    int var_3 = 0 , var_4 = 0 ;
    for ( int var_2 = 0 ;
    var_2 < var_1 ;
    var_2 ++ ) {
      if ( var_0 [ var_2 ] > var_4 ) {
        var_3 += ( var_1 - var_2 ) * ( var_0 [ var_2 ] - var_4 ) ;
        var_4 = var_0 [ var_2 ] ;
      }
      var_3 -= var_0 [ var_2 ] ;
    }
    var_4 = 0 ;
    for ( int var_2 = var_0 . length - 1 ;
    var_2 > var_1 ;
    var_2 -- ) {
      if ( var_0 [ var_2 ] > var_4 ) {
        var_3 += ( var_2 - var_1 ) * ( var_0 [ var_2 ] - var_4 ) ;
        var_4 = var_0 [ var_2 ] ;
      }
      var_3 -= var_0 [ var_2 ] ;
    }
    return var_3 ;
  }
  