if(x && nums[x - 1] == nums[x] && used.top()){
used.push(1);
tmp.push_back(nums[x]);
dfs(x + 1);
tmp.pop_back();
used.pop();
}else if(x && nums[x - 1] != nums[x]){
used.push(1);
tmp.push_back(nums[x]);
dfs(x + 1);
tmp.pop_back();
used.pop();
}else if(x == 0){
used.push(1);
tmp.push_back(nums[x]);
dfs(x + 1);
tmp.pop_back();
used.pop();
}
我感觉这样写更加清晰,虽然真的啰嗦