作者sixB (6B)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Sat Oct 5 10:14:57 2024
60.
又寫一題permutation
雖然概念完全不一樣就是了==
排列組合
找n! 裡的第k個
一位一位找 看是要第幾個
然後就下面一位
阿信都會
class Solution {
public:
string getPermutation(int n, int k) {
vector<int> s(n+1, 1);
int total = 1;
for(int i = 1; i <= n; i++){
total *= i;
}
string res;
while(n > 0){
int div = total / n;
int pos = (k-1)/div + 1;
int idx = 1;
for(int i = pos; i > 1; idx++){
if(s[idx] > 0){
i--;
}
}
for(; s[idx] == 0; idx++);
s[idx] = 0;
res += ('0' + idx);
k -= div * (pos-1);
total /= n;
n--;
}
return res;
}
};
-----
Sent from JPTT on my iPad
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.121.194 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1728094501.A.4F3.html
推 dont: 大師 10/05 10:18
推 DJYOSHITAKA: 看code就覺得好難 你是大師== 10/05 11:02