<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    IT技術小屋

    秋風秋雨,皆入我心

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks
    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.

    這道題其實有很強的規律可循。首先,n個元素的排列總數是n!。在下面的分析中,讓k的范圍是0 <= k < n!。(題目代碼實際上是1<=k<=n!)
    可以看到一個規律,就是這n!個排列中,第一位的元素總是(n-1)!一組出現的,也就說如果p = k / (n-1)!,那么排列的最開始一個元素一定是arr[p]。
    這個規律可以類推下去,在剩余的n-1個元素中逐漸挑選出第二個,第三個,...,到第n個元素。程序就結束。
     1 /**
     2  * The set [1,2,3,…,n] contains a total of n! unique permutations.
     3  * 
     4  * By listing and labeling all of the permutations in order, We get the
     5  * following sequence (ie, for n = 3):
     6  * 
     7  * "123" "132" "213" "231" "312" "321" Given n and k, return the kth permutation
     8  * sequence.
     9  * 
    10  * Note: Given n will be between 1 and 9 inclusive.
    11  * 
    12  */
    13 
    14 public class PermutationSequence {
    15     public String getPermutation(int n, int k) {
    16         char[] arr = new char[n];
    17         int pro = 1;
    18         for (int i = 0; i < n; ++i) {
    19             arr[i] = (char) ('1' + i);
    20             pro *= (i + 1);
    21         }
    22         k = k - 1;
    23         k %= pro;
    24         pro /= n;
    25         for (int i = 0; i < n - 1; ++i) {
    26             int selectI = k / pro;
    27             k = k % pro;
    28             pro /= (n - i - 1);
    29             int temp = arr[selectI + i];
    30             for (int j = selectI; j > 0; --j) {
    31                 arr[i + j] = arr[i + j - 1];
    32             }
    33             arr[i] = (char) temp;
    34         }
    35         return String.valueOf(arr);
    36     }
    37 }
    38 
    posted on 2014-01-07 16:06 Meng Lee 閱讀(452) 評論(0)  編輯  收藏 所屬分類: Leetcode
    主站蜘蛛池模板: 国内精品一级毛片免费看| 亚洲国产日韩综合久久精品| 九九久久国产精品免费热6| 国产精品免费看久久久久| 亚洲色偷偷色噜噜狠狠99网| 大地资源在线观看免费高清| 亚洲婷婷第一狠人综合精品| 成人在线免费观看| 亚洲成a人片在线观看天堂无码| 免费涩涩在线视频网| 亚洲AV无码一区二区三区久久精品 | 亚洲免费二区三区| 亚洲无砖砖区免费| 大地资源在线观看免费高清| 人人狠狠综合久久亚洲| 亚洲av中文无码| a级毛片黄免费a级毛片| 亚洲人成电影福利在线播放| 免费观看激色视频网站(性色)| 亚洲一区精品视频在线| 日本免费一区尤物| 黄视频在线观看免费| 亚洲精品中文字幕无码AV| 色影音免费色资源| 亚洲熟女乱色一区二区三区| 国产成人免费片在线观看| jizz免费一区二区三区| 亚洲黑人嫩小videos| 日韩精品无码区免费专区| 看免费毛片天天看| 亚洲国产一二三精品无码| 国产1000部成人免费视频| 色偷偷尼玛图亚洲综合| 亚洲人成亚洲人成在线观看| 最近2019中文字幕免费直播| 亚洲成av人片在www鸭子| 亚洲精品字幕在线观看| 成人av免费电影| 三上悠亚电影全集免费 | 爱情岛论坛亚洲品质自拍视频网站| 亚洲国产精品13p|