我的代码片段如下
int analy(vector< vector > info)
{
int chalg=-1;
int flag=0;
vector seq;
vector chalgseq;
for(int i=0;i<=lengthf-1;i++)
{
sort(*info[i].begin(), *info[i].end() );
}
seq.push_back(*info[0].begin());
for(int i=1;i<=lengthf-1;i++)
{ int flag=0;
chalgseq.clear();
//判断正序数列能否延长
for(vector<int>::iterator iter=info[i].begin();iter!=info[i].end();iter++)
{
if(*iter> *seq.end()-1)
{
seq.push_back(*iter);
flag=1;
}
break;
}
if(!flag)
{
chalgseq.push_back(*info[i].end()-1);
for(int k=i;k>=0;k--)
{
vector<int>::iterator iter2=info[k].end();
while( iter2 != info[k].begin())
{
if(*(--iter2)<*chalgseq.end()-1)
{
chalgseq.push_back( *(--iter2) );
break; // break 只会跳出 for while case 多少个if 都没有关系
}
}
}
}
if(chalgseq.size()>seq.size())
{
reverse(chalgseq.begin(),chalgseq.end());
seq=chalgseq;
}
}
return seq.size();
}