#include "leetcode.h" class Solution { public: vector> permuteUnique(vector &nums) { vector> ans; helper(0, nums, ans); return ans; } private: void helper(int i, vector &nums, vector> &ans) { if (i == nums.size()) { ans.emplace_back(nums); return; } unordered_set us; for (int j = i; j < nums.size(); j++) { if (us.count(nums[j]) == 1) continue; us.insert(nums[j]); swap(nums[i], nums[j]); helper(i + 1, nums, ans); swap(nums[i], nums[j]); } } }; int main() {}