日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > Leetcode--Permutation Sequence

Leetcode--Permutation Sequence

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-09-08 08:58:35 閱讀次數(shù):3437次

Problem Description:

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):

  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.

分析:

首先想到的暴力法,逐個(gè)的求排列,直到找到第k個(gè)排列,提交之后會(huì)超時(shí),在網(wǎng)上搜索之后發(fā)現(xiàn)可以直接構(gòu)造出第k個(gè)排列,以n = 4,k = 17為例,數(shù)組src = [1,2,3,...,n]。

第17個(gè)排列的第一個(gè)數(shù)是什么呢:我們知道以某個(gè)數(shù)固定開(kāi)頭的排列個(gè)數(shù) = (n-1)! = 3! = 6, 即以1和2開(kāi)頭的排列總共6*2 = 12個(gè),12 < 17, 因此第17個(gè)排列的第一個(gè)數(shù)不可能是1或者2,6*3 > 17, 因此第17個(gè)排列的第一個(gè)數(shù)是3。即第17個(gè)排列的第一個(gè)數(shù)是原數(shù)組(原數(shù)組遞增有序)的第m = upper(17/6) = 3(upper表示向上取整)個(gè)數(shù)。                                       

第一個(gè)數(shù)固定后,我們從src數(shù)組中刪除該數(shù),那么就相當(dāng)于在當(dāng)前src的基礎(chǔ)上求第k - (m-1)*(n-1)! = 17 - 2*6 = 5個(gè)排列,因此可以遞歸的求解該問(wèn)題。

代碼實(shí)現(xiàn)中注意一個(gè)小細(xì)節(jié),就是一開(kāi)始把k--,目的是讓下標(biāo)從0開(kāi)始,這樣下標(biāo)就是從0到n-1,不用考慮n時(shí)去取余,更好地跟數(shù)組下標(biāo)匹配。具體代碼如下:

class Solution { public: int fun(int n) { if(n<0) return 0; else if(n==0) return 1; else return n*fun(n-1); } string getPermutation(int n, int k) { string s; int total=fun(n); if(total<k) return s; vector<int> flag(n,0); //因?yàn)閿?shù)組是從0到n-1的,所以基數(shù)從0到k-1 --k; for(int i=0;i<n;i++) flag[i]=i+1; for(int i=0;i<n;i++) { total/=(n-i); int index=k/total; s.push_back('0'+flag[index]); for(int j=index;j<n-i-1;j++) flag[j]=flag[j+1]; k -= index*total; } return s; } };



生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲精品一区二区三 | 亚洲激情五月 | 日韩1区 | 日韩免费av | 欧美日韩亚洲国产综合 | 国产二三区 | 亚洲 欧美 日韩 综合 | 欧美在线视频一区 | 久久6这里只有精品 | 国产精品久久久久久久久久免 | 日本99| 精品成人一区二区 | 亚洲人久久 | 国产第一精品 | 黄色在线网站 | 亚洲电影一区 | 国产精品久久久久久亚洲调教 | 成人动漫免费观看 | 在线日韩 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲第一网站 | 国内精品视频一区 | 91精品国产高清一区二区三区 | 亚洲国产精品va在线看黑人动漫 | 亚洲乱码精品 | 欧美日韩国产专区 | 亚洲人人 | 一区二区激情 | 青青草青青操 | av丁香| 在线观看日韩av | 午夜久久久久久久久 | 在线第一页 | 三级三级久久三级久久18 | 99久久久久 | 国产精品国产三级国产专播品爱网 | 日韩在线观看视频免费 | 国产精品最新 | 中文字幕日韩视频 | 久久久免费 | av资源在线看 |