知识点

回溯

思路

范围很小,所以可以用回溯来做。因为是要求逆序,所以从大的数开始往小的数搜。

为了省事用了prev_permutation函数

AC code (C++)

#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > cow_permute(vector<int>& nums) {
        sort(nums.begin(), nums.end(), greater<>());
        vector<vector<int>> res;
        do {
            res.push_back(nums);
        } while (prev_permutation(nums.begin(), nums.end()));
        return res;
    }
};