2.1.13 Permutation Sequence
来源:互联网 发布:js获取pdf文件大小 编辑:程序博客网 时间:2024/06/14 05:27
Link: https://oj.leetcode.com/problems/permutation-sequence/
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 (ie, for n = 3):
- "123"
- "132"
- "213"
- "231"
- "312"
- "321"
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive.
这题完全没有思路。再做。
以下代码参考:http://www.lifeincode.net/programming/leetcode-permutation-sequence-java/
Time: O(n),
But this blog said its O(n^2) because removing elements from array is O(n) //What if removing an element from an ArrayList?
- ArrayList 对于随机位置的add/remove,时间复杂度为 O(n),但是对于列表末尾的添加/删除操作,时间复杂度是 O(1). (Ref: http://blog.csdn.net/renfufei/article/details/17077425)
http://blog.csdn.net/linhuanmars/article/details/22028697
public class Solution { public String getPermutation(int n, int k) { int t = 1; ArrayList<Integer> num = new ArrayList<Integer> (); for(int i = 1; i <=n; i++){ t *= i; num.add(i);//num = {1, 2, 3} } //t = n! k--;//from 1-indexed to 0-indexed t /=n;//t = (n-1)! StringBuffer sb = new StringBuffer(); for(int i = n-1; i >=1; i--){//i starts with n-1 because t = (n-1)!, need to divide (n-1) int p = k/t; int digit = num.get(p); sb.append(String.valueOf(digit));//note to use "String.valueOf"! num.remove(p); k %= t; t /=i; } sb.append(String.valueOf(num.get(0))); return sb.toString(); }}
0 0
- 2.1.13 Permutation Sequence
- 13:Permutation Sequence
- 2.1.13 —线性表—Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- Permutation Sequence
- 获取js某标签下的某类型标签
- android数独游戏机器人
- 浅析fragment
- 使用CToolTipCtrl让鼠标提示窗口跟着鼠标在屏幕上移动
- C#设置DATAGRIPVIEW的标题行背景色
- 2.1.13 Permutation Sequence
- 笔记本键盘按钮扣掉了
- 什么是TCP Window
- 黑马程序员—JAVA高新技术_JDK1.5新特性II
- TCMalloc小记
- ContactInfo
- 用Python和Pygame写游戏-从入门到精通(21)
- quartz调度框架
- eclipse 常用快捷键