From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/solutions/leetcode/cpp/60.cpp | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 store/works/solutions/leetcode/cpp/60.cpp (limited to 'store/works/solutions/leetcode/cpp/60.cpp') diff --git a/store/works/solutions/leetcode/cpp/60.cpp b/store/works/solutions/leetcode/cpp/60.cpp new file mode 100644 index 0000000..f090355 --- /dev/null +++ b/store/works/solutions/leetcode/cpp/60.cpp @@ -0,0 +1,44 @@ +#include +#include + +using std::string; + +class Solution +{ +public: + string getPermutation(int n, int k) + { + k--; + + string result; + result.reserve(n); + + std::vector nums; + nums.reserve(n); + + for (int i = 1; i <= n; i++) + { + nums.push_back(i + '0'); + } + + n--; + int fac = 1; + for (int i = 2; i <= n; i++) + { + fac *= i; + } + + while (n > 0) + { + const int index = k / fac; + k = k % fac; + result += nums[index]; + nums.erase(nums.cbegin() + index); + fac /= n--; + } + + result += nums.front(); + + return result; + } +}; \ No newline at end of file -- cgit v1.2.3