comefrom: <gouthampradhan>backtracking_SubsetsII_1.java
code: public List<List<Integer>> subsetsWithDup(int[] nums) {
      List<List<Integer>> result = new ArrayList<>();
      result.add(new ArrayList<>()); 
      int start = 0, newStart = 0;
      Arrays.sort(nums);
      for (int i = 0, l = nums.length; i < l; i++) {
        newStart = result.size();
        if (i == 0 || nums[i] != nums[i - 1]) {
          start = 0;
        }
        for (int j = start, resLen = result.size(); j < resLen; j++) {
          List<Integer> newList = new ArrayList<>(result.get(j));
          newList.add(nums[i]);
          result.add(newList);
        }
        start = newStart;
      }
      return result;
    }
masked: public List < List < Integer >> var_0 ( int [ ] var_1 ) {
    List < List < Integer >> var_2 = new ArrayList < > ( ) ;
    var_2 . add ( new ArrayList < > ( ) ) ;
    int var_3 = 0 , var_4 = 0 ;
    Arrays . sort ( var_1 ) ;
    for ( int var_5 = 0 , var_6 = var_1 . length ;
    var_5 < var_6 ;
    var_5 ++ ) {
      var_4 = var_2 . size ( ) ;
      if ( var_5 == 0 || var_1 [ var_5 ] != var_1 [ var_5 - 1 ] ) {
        var_3 = 0 ;
      }
      for ( int var_7 = var_3 , var_8 = var_2 . size ( ) ;
      var_7 < var_8 ;
      var_7 ++ ) {
        List < Integer > var_9 = new ArrayList < > ( var_2 . get ( var_7 ) ) ;
        var_9 . add ( var_1 [ var_5 ] ) ;
        var_2 . add ( var_9 ) ;
      }
      var_3 = var_4 ;
    }
    return var_2 ;
  }
  