zoukankan      html  css  js  c++  java
  • [leetcode-46-Permutations]

    Given a collection of distinct numbers, return all possible permutations.
    For example,
    [1,2,3] have the following permutations:
    [
    [1,2,3],
    [1,3,2],
    [2,1,3],
    [2,3,1],
    [3,1,2],
    [3,2,1]
    ]

    思路:

    参考别人的方法,将所有的数分别与第一个数交换。。。待学习。。

    void permuteCore2(vector<vector<int>>& result, vector<int>& nums , int index)
        {
            if (index == nums.size())
            {
                result.push_back(nums);
            }
            for (int i = index; i < nums.size(); i++)
            {
                swap(nums[i], nums[index]);
                permuteCore2(result, nums,index + 1);
                swap(nums[i], nums[index]);
            }
        }
        void permuteCore(vector<vector<int>>& result,vector<int>& nums, vector<int>& temp,int index)
        {
            if (index == nums.size())
            {
                result.push_back(temp);
            }
            for (int i = index; i < nums.size();i++)
            {
                
                temp.push_back(nums[i]);
                swap(nums[i], nums[index]);
                permuteCore(result, nums, temp, index + 1);
                swap(nums[i], nums[index]);
                temp.pop_back();
                
            }
        }
        vector<vector<int>> permute(vector<int>& nums)
        {
            vector<vector<int>>result;
            vector<int> temp;
            sort(nums.begin(),nums.end());
            //permuteCore(result, nums, temp, 0);
            permuteCore2(result, nums,0);
            return result;
        }

    参考:

    http://blog.csdn.net/happyaaaaaaaaaaa/article/details/51534048

  • 相关阅读:
    Java入门
    Java入门
    Java入门
    Java入门
    Java入门
    Java入门
    Java入门
    random库的使用
    程序的控制结构
    数据类型
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6518357.html
Copyright © 2011-2022 走看看