[LeetCode] Permutation

vector<vector<int> > permute(vector<int> &num) {
	vector<vector<int>> permutations;
	if (num.size() <= 1)
	{
		permutations.push_back(num);
		return permutations;
	}
	int lastNum = num.back();
	num.pop_back();
	vector<vector<int>> permutationsWithoutLastNum = permute(num);
	for (int i = 0; i < permutationsWithoutLastNum.size(); i++)
	{
		vector<int> permutationWithoutLastNum = permutationsWithoutLastNum[i];
		for (int j = 0; j <= permutationWithoutLastNum.size(); j++)
		{
			vector<int> permutation = permutationWithoutLastNum;
			permutation.insert(permutation.begin()+j, lastNum);
			permutations.push_back(permutation);
		}
	}
	return permutations;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章