class Solution {
public:
int maxEnvelopes(vector<vector<int>>& envelopes) {
int n=envelopes.size(),ans=0,tmp;
vector<int> f(n,0);
sort(envelopes.begin(),envelopes.end());
//先对各信封长宽其中的第一维进行排序
for(int i=0;i<n;i++)
{
tmp=0;
//重新设为0
for(int j=0;j<i;j++)
{
if(envelopes[i][0]>envelopes[j][0]&&envelopes[i][1]>envelopes[j][1])
{
tmp=max(tmp,f[j]);
//tmp记录比i小的数组下标中最大值
}
}
f[i]=tmp+1;
//加上外面再套上f[i]这个信封
ans=max(ans,f[i]);
//找到f[i]中最大值
}
return ans;
}
};
leetcode 二维dp 俄罗斯套娃版信封
最新推荐文章于 2022-11-19 20:41:47 发布