凤泉网站建设,常州哪些网站公司做的好,无锡网络推广哪家好,长春网站公司有哪些内容给出集合 [1,2,3,…,n]#xff0c;其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况#xff0c;并一一标记#xff0c;当 n 3 时, 所有排列如下#xff1a; “123” “132” “213” “231” “312” “321” 给定 n 和 k#xff0c;返回第 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 3 输出: “213”
代码
class Solution {int tar;String ressnull;public String getPermutation(int n, int k) {tark;permutation(n,new boolean[n1],new StringBuilder());return ress;}public void permutation(int n, boolean[] check,StringBuilder stringBuilder) {if(ress!null) return;if(stringBuilder.length()n)//排列完成{if(--tar0)//检查是否为第k个数ressstringBuilder.toString();}for (int i1;in;i)//遍历可以选择的数字{if(check[i]) continue;check[i]true;stringBuilder.append(i);permutation(n,check,stringBuilder);check[i]false;//回溯stringBuilder.deleteCharAt(stringBuilder.length()-1);}}
}