Problem Statement could be found @https://leetcode.com/submissions/detail/85159040/
Code Snippet:
class Solution {
public:
string getPermutation(int n, int k) {
k=k-1;
string str="";
for (int i=0;i<n;i++){
char x = '0'+i+1;
str = str.append(1,x);
}
int div = 1;
int counter = n-1;
while (counter > 1){
div =div * counter;
counter--;
}
string temp="";
counter =n-1;
while ( k>0){
int index = k/div;
temp = temp + str.at(index);
str = str.erase(index,1);
k = k%div;
div = div/counter;
counter--;
if (div == 0){
div=1;
}
}
temp = temp+str;
return temp;
}
};
Code Snippet:
class Solution {
public:
string getPermutation(int n, int k) {
k=k-1;
string str="";
for (int i=0;i<n;i++){
char x = '0'+i+1;
str = str.append(1,x);
}
int div = 1;
int counter = n-1;
while (counter > 1){
div =div * counter;
counter--;
}
string temp="";
counter =n-1;
while ( k>0){
int index = k/div;
temp = temp + str.at(index);
str = str.erase(index,1);
k = k%div;
div = div/counter;
counter--;
if (div == 0){
div=1;
}
}
temp = temp+str;
return temp;
}
};
No comments:
Post a Comment