• leetcode算法题基础(十二)回溯法(二)46 题 全排列


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

    示例:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/permutations
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def permute(self, nums: List[int]) -> List[List[int]]:
            res = []
            def backtrack(nums, tmp):
                if not nums:
                    res.append(tmp)
                    return 
                for i in range(len(nums)):
                    backtrack(nums[:i] + nums[i+1:], tmp + [nums[i]])
            backtrack(nums, [])
            return res
    backtrack()
        for 选择 in 选择列表:
            # 做选择
            将该选择从选择列表移除
            路径.add(选择)
            backtrack(路径, 选择列表)
            # 撤销选择
            路径.remove(选择)
            将该选择再加入选择列表
    class Solution {
    public:
        vector<vector<int>> result;
        vector<vector<int>> permute(vector<int>& nums) {
            vector<int> track;
            backtrack(nums,track);
            return result;
        }
        void backtrack(vector<int> nums,vector<int> track){
            if(track.size()==nums.size()){
                result.push_back(track);
                return;
            }
            for(int i=0;i<nums.size();++i){
                //如果nums[i]没有出现在track当中,即可供选择
                //在可重复回溯模板中选择“不可重复”!
                if(find(track.begin(),track.end(),nums[i])==track.end()){
                    track.push_back(nums[i]);
                    backtrack(nums,track);
                    track.pop_back();
                }
            }
        }
    };

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13998578.html

  • 相关阅读:
    P6057 [加油武汉]七步洗手法
    LC 1349. Maximum Students Taking Exam (Hungarian / Max Flow)
    P1879 [USACO06NOV]玉米田Corn Fields
    P1433 吃奶酪 (TSP)
    LC 1349. Maximum Students Taking Exam
    获取XML中的值
    TimeZoneInfo类的使用
    XML 克隆节点
    网络协议概述:物理层、连接层、网络层、传输层、应用层详解
    Vuex
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13998578.html
Copyright © 2020-2023  润新知