看板 Marginalman
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