您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

全排列算法

时间:12-14来源:作者:点击数:

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例:
输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]

使用 dfs

var permute = function(nums) {
    let res = [];
    let visited = new Array(nums.length).fill(false);
    dfs(nums, [], visited, res);
    return res;
};

function dfs(nums, path, visited, res) {
    if (path.length === nums.length) {
        res.push([...path]);
        return;
    }
    for (let i = 0; i < nums.length; i++) {
        if (visited[i]) continue;
        visited[i] = true;
        path.push(nums[i]);
        dfs(nums, path, visited, res);
        path.pop();
        visited[i] = false;
    }
}
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐