comefrom: <gouthampradhan>hashing_BrickWall_1.java
code: public int leastBricks(List<List<Integer>> wall) {
      for (List<Integer> row : wall) {
        int prefix = 0;
        for (int i = 0, l = row.size(); i < l; i++) {
          prefix += row.get(i);
          row.set(i, prefix);
        }
      }
      int result = Integer.MIN_VALUE;
      Map<Integer, Integer> map = new HashMap<>();
      for (List<Integer> row : wall) {
        for (int i = 0, l = row.size(); i < l - 1; i++) {
          int prefix = row.get(i);
          if (map.containsKey(prefix)) {
            int plusOne = map.get(prefix) + 1;
            map.put(prefix, plusOne);
            result = Math.max(result, plusOne);
          } else {
            map.put(prefix, 1);
            result = Math.max(result, 1);
          }
        }
      }
      return (result == Integer.MIN_VALUE) ? wall.size() : wall.size() - result;
    }
masked: public int sample_funcname ( List < List < Integer >> var_0 ) {
    for ( List < Integer > var_1 : var_0 ) {
      int var_2 = 0 ;
      for ( int var_3 = 0 , var_4 = var_1 . size ( ) ;
      var_3 < var_4 ;
      var_3 ++ ) {
        var_2 += var_1 . get ( var_3 ) ;
        var_1 . set ( var_3 , var_2 ) ;
      }
    }
    int var_5 = Integer . MIN_VALUE ;
    Map < Integer , Integer > var_6 = new HashMap < > ( ) ;
    for ( List < Integer > var_1 : var_0 ) {
      for ( int var_3 = 0 , var_4 = var_1 . size ( ) ;
      var_3 < var_4 - 1 ;
      var_3 ++ ) {
        int var_2 = var_1 . get ( var_3 ) ;
        if ( var_6 . containsKey ( var_2 ) ) {
          int var_7 = var_6 . get ( var_2 ) + 1 ;
          var_6 . put ( var_2 , var_7 ) ;
          var_5 = Math . max ( var_5 , var_7 ) ;
        }
        else {
          var_6 . put ( var_2 , 1 ) ;
          var_5 = Math . max ( var_5 , 1 ) ;
        }
      }
    }
    return ( var_5 == Integer . MIN_VALUE ) ? var_0 . size ( ) : var_0 . size ( ) - var_5 ;
  }
  