class Solution {
public:
void nextPermutation(vector<int> &num) {
int n = num.size();
int i = n - 1;
bool found = false;
for(; i > 0; --i) {
if( num[i - 1] < num[i]) {
found = true;
break;
}
}
if(found) {
int j = i;
for(int k = j + 1; k < n; ++k) {
if(num[k] < num[j] && num[k] > num[i - 1] ) {
j = k;
}
}
int temp = num[i - 1];
num[i - 1] = num[j];
num[j] = temp;
sort(num.begin() + i, num.end());
} else {
sort(num.begin(), num.end());
}
}
};
4/05/2014
Leetcode -- Next Permutation
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment