当前位置: 首页 > news >正文

唐山网站从哪里找网站过期原因

唐山网站从哪里找,网站过期原因,移动建站模板,常州建站优化本文涉及的基础知识点 二分查找 题目 给你一个二维整数数组 envelopes #xff0c;其中 envelopes[i] [wi, hi] #xff0c;表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候#xff0c;这个信封就可以放进另一个信封里#xff0c;如同俄罗…本文涉及的基础知识点 二分查找 题目 给你一个二维整数数组 envelopes 其中 envelopes[i] [wi, hi] 表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候这个信封就可以放进另一个信封里如同俄罗斯套娃一样。 请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封即可以把一个信封放到另一个信封里面。 注意不允许旋转信封。 示例 1 输入envelopes [[5,4],[6,4],[6,7],[2,3]] 输出3 解释最多信封的个数为 3, 组合为: [2,3] [5,4] [6,7]。 示例 2 输入envelopes [[1,1],[1,1],[1,1]] 输出1 参数提示 1 envelopes.length 105 envelopes[i].length 2 1 wi, hi 105 超时解法 有两个地方可能超时 一std::mapint, int dp mPreYToNum; 二for (; (ij ! dp.end()) (ij-second len); ij); 一处的时间复杂度是:O(n)最多有n个元素所以总时间复杂度是O(n*n)会引起超时。 二处总时间复杂度是O(n)最多删除n次每个元素最多只会被删除一次。 代码 class Solution { public: int maxEnvelopes(vectorvector envelopes) { std::mapint, vector mXToYS; for (const auto v : envelopes) { mXToYS[v[0]].emplace_back(v[1]); } std::mapint, int mPreYToNum;//y值对应最大数量y值越大对应的数量越大否则被淘汰了 int iMax 0; for (const auto it : mXToYS) { std::mapint, int dp mPreYToNum; for (const auto y : it.second) { int len 0; {//计算长度 const auto it mPreYToNum.lower_bound(y); len 1 ((mPreYToNum.begin() it) ? 0 : std::prev(it)-second); iMax max(iMax, len); } { const auto it dp.lower_bound(y); auto ij it; for (; (ij ! dp.end()) (ij-second len); ij); dp.erase(it, ij); if (!dp.count(y)) { dp[y] len; } } } mPreYToNum.swap(dp); } return iMax; }}; 测试用例 template void Assert(const T t1, const T t2) { assert(t1 t2); } template void Assert(const vector v1, const vector v2) { if (v1.size() ! v2.size()) { assert(false); return; } for (int i 0; i v1.size(); i) { Assert(v1[i] ,v2[i]); } } int main() { Solution slu; vectorvector envelopes; int res 0; envelopes { {5,4},{6,4},{6,7},{2,3} }; res slu.maxEnvelopes(envelopes); Assert(res, 3); envelopes { {1,1},{1,1},{1,1} }; res slu.maxEnvelopes(envelopes); Assert(res, 1); envelopes { {1,1},{2,2},{2,3} }; res slu.maxEnvelopes(envelopes); Assert(res, 2); envelopes { {1,2},{2,3},{3,4},{3,5},{4,5},{5,5},{5,6},{6,7},{7,8} }; res slu.maxEnvelopes(envelopes); Assert(res, 7); //CConsole::Out(res);} 正确解法 变量含义 mXToYSkey为envelopes的x值为envelopes的ymYToNum[x取[0,x) y对应最大套娃数量vectorpairint, int vYNum当前x各y对应数量 注意 x相同无法套娃所以必须等当前x处理完毕才能更新mYToNum。 y值越大对应的数量越大否则被淘汰了。所以mYToNum的键和值都是升序。 y小于当前y的不会淘汰当前y因为当前长度就是小于y的最大长度1。 所以只会被相等的y淘汰。 当前y 可能淘汰比当前y大的。 代码 class Solution { public: int maxEnvelopes(vectorvector envelopes) { std::mapint, vector mXToYS; for (const auto v : envelopes) { mXToYS[v[0]].emplace_back(v[1]); } std::mapint, int mYToNum;//y值对应最大数量 int iMax 0; for (const auto it : mXToYS) { vectorpairint, int vYNum; for (const auto y : it.second) { const auto it mYToNum.lower_bound(y); const int num 1 ((mYToNum.begin() it) ? 0 : std::prev(it)-second); iMax max(iMax, num); vYNum.emplace_back(y, num); } for(const auto[y,num]: vYNum) { const auto it mYToNum.lower_bound(y); auto ij it; for (; (ij ! mYToNum.end()) (ij-second num); ij); mYToNum.erase(it, ij); if (!mYToNum.count(y)) { mYToNum[y] num; } } } return iMax; } }; 2023年1月旧代码 class Solution { public: int maxEnvelopes(vectorvector envelopes) { std::mapint, vector mWidthToHeights; for (const auto v : envelopes) { mWidthToHeights[v[0]].push_back(v[1]); } int iMax 1; std::mapint, int mHeightNum; for ( auto it : mWidthToHeights) { sort(it.second.begin(), it.second.end(),std::greater()); for (auto height : it.second) { auto it mHeightNum.lower_bound(height); int iNum 1; if (mHeightNum.begin() ! it) {//没有套 auto ij it; –ij; iNum ij-second 1; } iNum max(iNum,mHeightNum[height]); auto ij it; while ( (ij ! mHeightNum.end()) ( ij-second iNum)) { ij; } mHeightNum.erase(it, ij); mHeightNum[height] max(mHeightNum[height], iNum); iMax max(iMax, mHeightNum[height]); } } return iMax; } }; 扩展阅读 视频课程 有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快 速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176 相关下载 想高屋建瓴的学习算法请下载《闻缺陷则喜算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653 充满正能量得对大家说闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。墨家名称的来源有所得以墨记之。算法终将统治宇宙而我们统治算法。《喜缺全书》 测试环境 操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开 发环境 VS2022 C17
http://www.dnsts.com.cn/news/11401.html

相关文章:

  • 专业旅游培训网站建设北京软件设计公司
  • 无锡本地网站有哪些福州网站建设企业
  • jsp网站开发 孟浩pdf宁波技术好的企业网站制作
  • 网站定制开发四大基本原则网站做行业认证好处
  • 免费的网站域名查询565wcc制作公司网站怎样收费
  • 个人网站支付解决方案个人网站 cms
  • 民间it网站建设七牛云wordpress
  • 厦门唯一官方网站制作人是干嘛的
  • 排名网站优化培训婚纱摄影网站报价
  • php彩票网站建设教程石家庄网站建设就找企行家
  • 黄山网站建设怎么做永久免费asp空间
  • 网站建设的前期开发科技布沙发
  • 兰州网站建设程序h5网址
  • 网站营运费郑州比较厉害的短视频公司
  • 宿迁做网站 宿迁网站建设开个网站多少钱一年
  • 做钓鱼网站会被抓判刑吗合网站 - 百度
  • 网站建设捌金手指专业1潍坊专业的瓷砖美缝
  • wordpress开发企业网站wordpress 顶部 浮动
  • 网站设计做微信发现界面大连模板网站制作电话
  • 如何将百度云做成网站文件服务器网站首页制作网站
  • 设计网站遇到的问题网站建设 镇江丹阳
  • 网站域名备案与不备案的区别哪种网站名称容易通过备案审核
  • 网站推广软文甄选天天软文网站合作客户
  • 如何自己做官网东莞网站关键词优化公司
  • 如何建立自己的摄影网站深圳建伟业公司商城
  • 网站管理员登录入口wordpress 资源分享
  • 装修平台自己做网站有几个wordpress app模板下载
  • 公司网站设计要求家乡网页模板
  • 手机导航网站模板空包网站建设
  • 在线制作动画网站个人微信公众平台注册流程