<gouthampradhan>hashing_BrickWall_1.java
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;
  }
public int sample_funcname ( List < List < Integer >> var_2 ) {
  for ( List < Integer > var_3 : var_2 ) {
    int var_5 = 0 ;
    for ( int var_6 = 0 , var_8 = var_3 . size ( ) ;
    var_6 < var_8 ;
    var_6 ++ ) {
      var_5 += var_3 . get ( var_6 ) ;
      var_3 . set ( var_6 , var_5 ) ;
    }
  }
  int var_12 = Integer . MIN_VALUE ;
  Map < Integer , Integer > var_15 = new HashMap < > ( ) ;
  for ( List < Integer > var_3 : var_2 ) {
    for ( int var_6 = 0 , var_8 = var_3 . size ( ) ;
    var_6 < var_8 - 1 ;
    var_6 ++ ) {
      int var_5 = var_3 . get ( var_6 ) ;
      if ( var_15 . containsKey ( var_5 ) ) {
        int var_18 = var_15 . get ( var_5 ) + 1 ;
        var_15 . put ( var_5 , var_18 ) ;
        var_12 = Math . max ( var_12 , var_18 ) ;
      }
      else {
        var_15 . put ( var_5 , 1 ) ;
        var_12 = Math . max ( var_12 , 1 ) ;
      }
    }
  }
  return ( var_12 == Integer . MIN_VALUE ) ? var_2 . size ( ) : var_2 . size ( ) - var_12 ;
}
