class Solution:
def getPermutation(self, n: int, k: int) -> str:
nums = [str(x) for x in range(1, n + 1)]
answer = ""
while nums:
c = len(nums)
cfac = 1
for num in range(1, c + 1):
cfac *= num
save = 1
for index in range(1, cfac + 1, cfac//c):
save = index
if k > index - 1 and k < index + (cfac/c):
break
get = int((save - 1)/(cfac/c))
next = nums[get]
answer += next
nums.pop(get)
k = k - (save - 1)
return answer
1629A - Download More RAM | 1629C - Meximum Array |
1629D - Peculiar Movie Preferences | 1629E - Grid Xor |
1629F1 - Game on Sum (Easy Version) | 2148. Count Elements With Strictly Smaller and Greater Elements |
2149. Rearrange Array Elements by Sign | 2150. Find All Lonely Numbers in the Array |
2151. Maximum Good People Based on Statements | 2144. Minimum Cost of Buying Candies With Discount |
Non empty subsets | 1630A - And Matching |
1630B - Range and Partition | 1630C - Paint the Middle |
1630D - Flipping Range | 1328A - Divisibility Problem |
339A - Helpful Maths | 4A - Watermelon |
476A - Dreamoon and Stairs | 1409A - Yet Another Two Integers Problem |
977A - Wrong Subtraction | 263A - Beautiful Matrix |
180C - Letter | 151A - Soft Drinking |
1352A - Sum of Round Numbers | 281A - Word Capitalization |
1646A - Square Counting | 266A - Stones on the Table |
61A - Ultra-Fast Mathematician | 148A - Insomnia cure |