转自:http://blog.csdn.net/lqcsp/article/details/23322951
class Solution {
public:
string getPermutation(int n, int k) {
vector<int> num(n, 0);
int total = 1;
for(int i = 0; i < n; i++) {
num[i] = i + 1;
total *= (i + 1);
}
string result;
if(k <= 0) {
return result;
}
k--;
for(int i = 0; i < n; i++) {
total /= (n - i);
int index = k / total;
result.push_back(num[index] + '0');
for(int k = index; k < n - 1 - i; k++) {
num[k] = num[k + 1];
}
k %= total;
}
return result;
}
};