60. Permutation Sequence

在这里插入图片描述

只是想说一个错误的解法:

class Solution {
public:
    string getPermutation(int n, int k) {
        string num = string("");
        for (char c = 1; c <= n; ++c)
            num += to_string(c);
        dfs(num, 0, k);
        return num;
    }
private:
    void dfs(string& num, int idx, int& cnt) {
        if (idx == num.size()) {
            --cnt;
            return;
        }
        for (int i = idx; i < num.size(); ++i) {
            swap(num[i], num[idx]);
            dfs(num, idx+1, cnt);
            if (cnt == 0)
                return;
            swap(num[i], num[idx]);
        }
    }
};
//确实不能这么做,这种交换不是按照逻辑顺序大小排列的,321在312前面。

这种交换的方法不是按照逻辑大小顺序来的

posted @ 2019-10-24 19:29  于老师的父亲王老爷子  阅读(11)  评论(0编辑  收藏  举报