zoukankan      html  css  js  c++  java
  • 全排列

    dd

    #include <iostream>
    using namespace std;
    void swap(char *a, char *b) 
    {     
        char tmp;     
        tmp = *a;     
        *a = *b;     
        *b = tmp; 
    }  
    void perm(char list[], int beg, int end) 
    {     
        if(beg > end)     
        {          
            for(int i = 0; i <= end; i++)             
                cout << list[i];
            cout << endl;
        }     
        else     
        {         
            for(int i = beg; i <= end; i++)         
            {             
                swap(&list[i], &list[beg]);             
                perm(list, beg + 1, end);             
                swap(&list[i], &list[beg]);         
            }     
        } 
    } 
    int main() 
    {     
        char list[] = {'1', '2', '3'};     
        int lens = sizeof(list) / sizeof(*list);
        perm(list, 0, lens-1);     
        return 0; 
    }

    dd

    #include <iostream>
    #include <vector>
    using namespace std;
    void getPer(vector<int> &num, int index, 
            vector<int> &tmp, vector<vector<int > > &rev)
    {
        if (index == num.size())
            rev.push_back(tmp);
        for (int i = index; i < num.size(); ++i)
        {
            swap(num[i], num[index]);
            tmp.push_back(num[index]);
            getPer(num, index+1, tmp, rev);
            tmp.pop_back();
            swap(num[i], num[index]);
        }
    }
    vector<vector<int> > permute(vector<int> &nums)
    {
        vector<vector<int> > rev;
        vector<int> tmp;
        getPer(nums, 0, tmp, rev);
        return rev;
    }
    
    int main()
    {
        vector<int> vec;
        vec.push_back(1);
        vec.push_back(2);
        vec.push_back(3);
        vector<vector<int> > rev = permute(vec);
        cout << rev.size() << endl;
    }

    dd

    class Solution {
    public:
        void getPermute(vector<int> &num, int index, vector<int> &tmp, vector<vector<int> > &result)
        {
            if (index == num.size())
                result.push_back(num);
            for (int i = index; i < num.size(); ++i)
            {
                swap(num[i], num[index]);
                tmp.push_back(num[index]);
                getPermute(num, index+1, tmp, result);
                tmp.pop_back();
                swap(num[i], num[index]);
            }
        }
        vector<vector<int> > permute(vector<int> &num) {
            vector<vector<int> > result;
            vector<int> tmp;
            getPermute(num, 0, tmp, result);
            return result;
        }
    };
  • 相关阅读:
    【lwip】04内存管理
    微信小程序之获取当前位置经纬度以及地图显示
    Apache与Tomcat的区别和联系
    Jfinal中Db类的的使用
    利用GROUP_CONCAT和GROUP BY实现字段拼接
    实现easyui combobox中textField字段的拼接
    Jfinal数据库操作语句中占位符的使用
    Django项目部署到Apache服务器
    函数编程概念
    腾讯官网 样式初始化
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/3963534.html
Copyright © 2011-2022 走看看