小红书笔试
1.分割字符串
2.二维偏序
// bool cmp(pair<int,int>p1,pair<int,int>p2)
// {
// if(p1.first<p2.first) return true;
// else return false;
// }
/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/
// int maxBoxes(vector < vector < int > > boxes)
// {
// int n=boxes.size();
// vector< pair<int,int> >v;
// for(int i=0;i<boxes.size();i++)
// v.push_back(make_pair(boxes[i][0],boxes[i][1]));
// sort(v.begin(),v.end(),cmp);
// vector<int>dp(n,1);
// for(int i=1;i<n;i++)
// {
// for(int index=0;index<i;index++)
// if(v[i].second>v[index].second)
// dp[i]=max(dp[i],dp[index]+1);
// }
// return *max_element(dp.begin(),dp.end());
// }
int maxBoxes(vector<vector<int>>& boxes) {
if(boxes.size() == 0) return 0;
sort(boxes.begin(),boxes.end());
int res = 1;
vector<int> dp(boxes.size() , 1);
for(int i = 0; i < boxes.size() ; i++)
{
for(int index = 0 ; index < i ; index++)
{
if(boxes[index][0] < boxes[i][0] && boxes[index][1] < boxes[i][1] )
dp[i] = max(dp[i],dp[index] + 1);
}
}
return *max_element(dp.begin(),dp.end());
}
/******************************结束写代码******************************/
int main() {
int res;
int _boxes_rows = 0;
int _boxes_cols = 0;
cin >> _boxes_rows >> _boxes_cols;
vector< vector < int > > _boxes(_boxes_rows);
for(int _boxes_i=0; _boxes_i<_boxes_rows; _boxes_i++) {
for(int _boxes_j=0; _boxes_j<_boxes_cols; _boxes_j++) {
int _boxes_tmp;
cin >> _boxes_tmp;
_boxes[_boxes_i].push_back(_boxes_tmp);
}
}
res = maxBoxes(_boxes);
cout << res << endl;
return 0;
} 
巨人网络公司福利 91人发布