LeetCode(46) Permutations

来源:互联网 发布:四万亿 知乎 编辑:程序博客网 时间:2024/05/17 11:57

深度优先搜索算法设计技术。

class Solution {public:    void dfs(vector<int> nums, vector<int> &oneResult, int depth, int &length, vector<vector<int>> &result) {        if(depth == length - 1) {            oneResult[depth] = nums[0];            result.push_back(oneResult);            return;        }        for(int i = 0; i < nums.size(); i++) {            oneResult[depth] = nums[i];            vector<int> numsTmp(nums);            numsTmp.erase(numsTmp.begin() + i);            dfs(numsTmp, oneResult, depth + 1, length, result);        }    }    vector<vector<int>> permute(vector<int>& nums) {        sort(nums.begin(), nums.end());        int length = nums.size();        vector<int> oneResult(length, 0);        vector<vector<int>> result;        int depth = 0;        dfs(nums, oneResult, depth, length, result);        return result;    }};
0 0
原创粉丝点击