题解 | # 没有重复项数字的全排列 #

没有重复项数字的全排列

https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1?tpId=295&tqId=701&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295

脑子不好使,想不明白哎

class Solution {
public:
    vector<vector<int> > permute(vector<int> &num) {
        vector<vector<int> > res;
        dfs(res, vector<int>(), vector<int>(num.size(), 0), num);
        return res;
    }

    void dfs(vector<vector<int> > &res, vector<int> tmp, vector<int> visited, vector<int> &num) {
        if (tmp.size() == num.size()) { res.push_back(tmp); return; }
        for (int i = 0; i < num.size(); ++i) {
            if (visited[i] == 1) continue;
            visited[i] = 1;
            tmp.push_back(num[i]);
            dfs(res, tmp, visited, num);
            tmp.pop_back();
            visited[i] = 0;
        }
    }
};
全部评论

相关推荐

不放弃的小鱼干很洒脱:好可爱的离职理由
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务