Leetcode題目60 第k個排列

2021-10-05 06:07:42 字數 792 閱讀 2584

給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列。

按大小順序列出所有排列情況,並一一標記,當 n = 3 時, 所有排列如下:

「123」

「132」

「213」

「231」

「312」

「321」

給定 n 和 k,返回第 k 個排列。

說明:

給定 n 的範圍是 [1, 9]。

給定 k 的範圍是[1, n!]。

示例:

輸入: n = 3, k = 3

輸出: 「213」

class

solution

:def

getpermutation

(self, n:

int, k:

int)

->

str:

tokens =

[str

(i)for i in

range(1

, n+1)

] res =

'' k = k-

1import math

while n >0:

n -=

1 a, k =

divmod

(k, math.factorial(n)

) res += tokens.pop(a)

return res

60 第k個排列(leetcode)

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 示例 1 輸入 n 3,k 3 輸出 213 示例 2 輸入 n 4,k 9 輸出 ...

LeetCode60 第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 示例 1 輸入 n 3,k 3輸出 213 示例 2 輸入 n 4,k 9輸出 23...

leetcode 60 第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 給定 n 的範圍是 1,9 給定 k 的範圍是 1,n 示例 1 輸入 n 3,k ...