[LeetCode]60. Permutation Sequence

来源:互联网 发布:上传文件夹到linux 编辑:程序博客网 时间:2024/04/26 04:28

[LeetCode]60. Permutation Sequence

题目描述

这里写图片描述

思路

k/(n-1)! 取整确定当前位子的数,
k = k%(n-1)确定下一位子的k,
详见代码

代码

class Solution {public:    string getPermutation(int n, int k) {        string res = "";        vector<int> n_factorial(n, 1), nums(n, 1);        int index;        for (int i = 1; i < n; ++i) {            n_factorial[i] = i * n_factorial[i - 1];            nums[i] = i + 1;        }        while (nums.size()) {            --n;            index = floor(k / n_factorial[n]);            index = k % n_factorial[n] == 0 ? index - 1 : index;            k = k % n_factorial[n] == 0 ? n_factorial[n] : k % n_factorial[n];            res += to_string(nums[index]);            nums.erase(nums.begin() + index);        }        return res;    }};
0 0