最近怎么没有人贴EAD# EB23 - 劳工卡
E*0
1 楼
我说下我的算法,大家帮忙看看有没有问题。
#include
class Solution {
public:
void nextPermutation(vector &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (1==num.size())
return;
vector::reverse_iterator rit;
vector::reverse_iterator it1,it2;
for ( rit=num.rbegin() ; rit < num.rend(); ++rit )
{
rit++;
it1=rit;
rit--;
it2=rit;
if ((*(it2))>(*(it1)))
{
for (;it2!=num.rbegin();it2--)
if((*it1)>(*it2))
break;
it2--;
int temp=*it2;
*it2=*it1;
*it1=temp;
it1--;
sort(it1,num.end());
}
}
}
};
#include
class Solution {
public:
void nextPermutation(vector
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (1==num.size())
return;
vector
vector
for ( rit=num.rbegin() ; rit < num.rend(); ++rit )
{
rit++;
it1=rit;
rit--;
it2=rit;
if ((*(it2))>(*(it1)))
{
for (;it2!=num.rbegin();it2--)
if((*it1)>(*it2))
break;
it2--;
int temp=*it2;
*it2=*it1;
*it1=temp;
it1--;
sort(it1,num.end());
}
}
}
};