<awangdev>Subsets II_1.java
private void dfs(List<List<Integer>> result, List<Integer> list, int[] nums, int depth) {

        for (int i = depth; i < nums.length; i++) {
            if (i > depth && nums[i] == nums[i - 1]) continue; 
            list.add(nums[i]);
            result.add(new ArrayList<>(list));
            dfs(result, list, nums, i + 1);
            list.remove(list.size() - 1);
        }
    }
private void sample_funcname ( List < List < Integer >> result , List < Integer > list , int [ ] nums , int depth ) {
  for ( int i = depth ;
  i < nums . length ;
  i ++ ) {
    if ( i > depth && nums [ i ] == nums [ i - 1 ] ) continue ;
    list . add ( nums [ i ] ) ;
    result . add ( new ArrayList < > ( list ) ) ;
    dfs ( result , list , nums , i + 1 ) ;
    list . remove ( list . size ( ) - 1 ) ;
  }
}
