comefrom: <awangdev>40. Combination Sum II_3.java
code: private void dfs(List<List<Integer>> result, List<Integer> list,
  
                       int[] candidates, int index, int target) {
          for (int i = index; i < candidates.length; i++) {
              if (i > index && candidates[i] == candidates[i - 1]) continue;
  
              int value = candidates[i];
              list.add(value);
              if (target == value) result.add(new ArrayList<>(list));
              else if (target - value > 0) dfs(result, list, candidates, i + 1, target - value);
              list.remove(list.size() - 1); 
          }
      }
masked: private void sample_funcname ( List < List < Integer >> result , List < Integer > list , int [ ] candidates , int index , int target ) {
    for ( int i = index ;
    i < candidates . length ;
    i ++ ) {
      if ( i > index && candidates [ i ] == candidates [ i - 1 ] ) continue ;
      int value = candidates [ i ] ;
      list . add ( value ) ;
      if ( target == value ) result . add ( new ArrayList < > ( list ) ) ;
      else if ( target - value > 0 ) dfs ( result , list , candidates , i + 1 , target - value ) ;
      list . remove ( list . size ( ) - 1 ) ;
    }
  }
  