本文共 576 字,大约阅读时间需要 1 分钟。
题目:
解答:
采用递归,每次第一个元素和后面的元素进行交换,然后生成除第一个元素以外的后面的排列。
代码:
class Solution { public: vector> permute(vector &num) { int size = num.size(); vector > res; per(num, res, 0); return res; } private: void per(vector &num, vector > &res, int k) { if (k == num.size()) { res.push_back(num); } for (int i = k; i < num.size(); i++) { swap(num[k], num[i]); per(num, res, k + 1); swap(num[k], num[i]); } } void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; } };
转载地址:http://bytsi.baihongyu.com/