LeetCode 046 Permutations

来源:互联网 发布:淘宝新店盗图违规扣分 编辑:程序博客网 时间:2024/06/05 11:45

求给定序列的排列个数。

class Solution {public:    vector<vector<int>>ff;    vector<vector<int>> permute(vector<int>& nums) {                vector<int>gg;        find_ans(0,0,gg,nums);        return ff;    }    void find_ans(int step,int mark,vector<int>gg,vector<int>& nums){        if(step+1>nums.size()){            ff.push_back(gg);            return ;        }        for(int ii=0;ii<nums.size();ii++){            int text=ii;            if((mark>>ii)&1)continue;            if(step+1>gg.size())gg.push_back(nums[ii]);            else gg[step]=nums[ii];            //mark+=(1<<ii);//用位运算记录哪些点已经用过,那么就不能再用了。            find_ans(step+1,mark+(1<<ii),gg,nums);        }    }};


0 0