首页 > 小红书笔试

小红书笔试

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;

}


全部评论

(2) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐