0%

June Leetcoding Challenge(6.20)

LeetCode六月挑战(6.20 )Permutation Sequence LeetCode 60

Solution

The set [1,2,3,...,*n*] contains a total of n! unique permutations.

By listing and labeling all of the permutations in order, we get the following sequence for n = 3:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

Given n and k, return the kth permutation sequence.

Note:

  • Given n will be between 1 and 9 inclusive.
  • Given k will be between 1 and n! inclusive.

Example 1:

1
2
Input: n = 3, k = 3
Output: "213"

Example 2:

1
2
Input: n = 4, k = 9
Output: "2314"

思路

代码

java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public String getPermutation(int n, int k) {
StringBuilder result = new StringBuilder();
List<Integer> number = new ArrayList<>();
int[] fib = new int[n];
int jiec = 1;
fib[0] = 1;
for(int i=1;i<n;i++){
fib[i] = i *fib[i-1];
}

for(int i=1;i<=n;i++)
number.add(i);

k=k-1;
for(int i=n-1;i>=0;i--){
int x = k/fib[i];
System.out.println("x = "+x);
result.append(number.get(x));
k = k % fib[i];
number.remove(x);
}

return result.toString();
}
}
-------------本文结束感谢您的阅读-------------

本文标题:June Leetcoding Challenge(6.20)

文章作者:Jungle

发布时间:2020年06月20日 - 08:35

最后更新:2020年06月20日 - 10:56

原始链接:http://yoursite.com/2020/06/20/LeetCodeJuneChallenge20th/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Welcome to my other publishing channels