comefrom: <gouthampradhan>backtracking_CombinationSumII_1.java
code: private void combination(
        int i, int target, int[] candidates, List<Integer> row, List<List<Integer>> result) {
      if (target == 0) {
        result.add(new ArrayList<>(row));
      } else if (target > 0) {
        for (int j = i, l = candidates.length; j < l; j++) {
          if (j > i && candidates[j] == candidates[j - 1]) continue;
          row.add(candidates[j]);
          combination(j + 1, target - candidates[j], candidates, row, result);
          row.remove(row.size() - 1);
        }
      }
    }
masked: private void sample_funcname ( int i , int target , int [ ] candidates , List < Integer > row , List < List < Integer >> result ) {
    if ( target == 0 ) {
      result . add ( new ArrayList < > ( row ) ) ;
    }
    else if ( target > 0 ) {
      for ( int j = i , l = candidates . length ;
      j < l ;
      j ++ ) {
        if ( j > i && candidates [ j ] == candidates [ j - 1 ] ) continue ;
        row . add ( candidates [ j ] ) ;
        combination ( j + 1 , target - candidates [ j ] , candidates , row , result ) ;
        row . remove ( row . size ( ) - 1 ) ;
      }
    }
  }
  