怎么看網(wǎng)站日志文件seo官網(wǎng)優(yōu)化
leetcode46
給定一個不含重復(fù)數(shù)字的數(shù)組?nums
?,返回其?所有可能的全排列?。你可以?按任意順序?返回答案。
示例 1:
輸入:nums = [1,2,3] 輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
示例 2:
輸入:nums = [0,1] 輸出:[[0,1],[1,0]]
示例 3:
輸入:nums = [1] 輸出:[[1]]
需要記憶nums是否被用過,使用used記憶
遞歸終止條件:temp達到預(yù)定大小,push,返回
遞推條件:沒使用過的,push進temp。進下一層。遞歸達到最大深度后,釋放最后一位?;厮荻际且晃灰晃会尫诺?#xff0c;不要著急
vector<vector<int>> permute(vector<int>& nums) {if (nums.size() == 1) {return { nums };} vector<vector<int>> res;vector<int> temp; vector<bool> used(nums.size(), false);help(nums, res, temp,used);return res;
}
void help(vector<int>& nums, vector<vector<int>>& res, vector<int> temp, vector<bool>& used) {if (temp.size() == nums.size()) {res.push_back(temp);return;}for (int i = 0; i < nums.size(); i++) {if (!used[i]) {temp.push_back(nums[i]);used[i] = true;help(nums, res, temp, used);used[i] = false;temp.pop_back();} }return;
}