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

一站式服务的优点wordpress zzt

一站式服务的优点,wordpress zzt,三亚做网站的公司,html5响应式网站开发教程目录 1851. 包含每个查询的最小区间 题目描述#xff1a; 实现代码与解析#xff1a; 排序 哈希 原理思路#xff1a; 1851. 包含每个查询的最小区间 题目描述#xff1a; 给你一个二维整数数组 intervals #xff0c;其中 intervals[i] [lefti, righti] 表示第 i…目录 1851. 包含每个查询的最小区间 题目描述 实现代码与解析 排序 哈希 原理思路 1851. 包含每个查询的最小区间 题目描述 给你一个二维整数数组 intervals 其中 intervals[i] [lefti, righti] 表示第 i 个区间开始于 lefti 、结束于 righti包含两侧取值闭区间。区间的 长度 定义为区间中包含的整数数目更正式地表达是 righti - lefti 1 。 再给你一个整数数组 queries 。第 j 个查询的答案是满足 lefti queries[j] righti 的 长度最小区间 i 的长度 。如果不存在这样的区间那么答案是 -1 。 以数组形式返回对应查询的所有答案。 示例 1 输入intervals [[1,4],[2,4],[3,6],[4,4]], queries [2,3,4,5] 输出[3,3,1,4] 解释查询处理如下 - Query 2 区间 [2,4] 是包含 2 的最小区间答案为 4 - 2 1 3 。 - Query 3 区间 [2,4] 是包含 3 的最小区间答案为 4 - 2 1 3 。 - Query 4 区间 [4,4] 是包含 4 的最小区间答案为 4 - 4 1 1 。 - Query 5 区间 [3,6] 是包含 5 的最小区间答案为 6 - 3 1 4 。示例 2 输入intervals [[2,3],[2,5],[1,8],[20,25]], queries [2,19,5,22] 输出[2,-1,4,6] 解释查询处理如下 - Query 2 区间 [2,3] 是包含 2 的最小区间答案为 3 - 2 1 2 。 - Query 19不存在包含 19 的区间答案为 -1 。 - Query 5 区间 [2,5] 是包含 5 的最小区间答案为 5 - 2 1 4 。 - Query 22区间 [20,25] 是包含 22 的最小区间答案为 25 - 20 1 6 。提示 1 intervals.length 1051 queries.length 105intervals[i].length 21 lefti righti 1071 queries[j] 107 实现代码与解析 排序 哈希 class Solution { public:vectorint minInterval(vectorvectorint itv, vectorint qr) {vectorint res(qr.size(), -1);setpairint, int st;for (int i 0; i qr.size(); i) st.insert({qr[i], i}); // 所求数字编号// 区间从小到大排 lambda表达式sort(itv.begin(), itv.end(), [](const auto a, const auto b){return a[1] - a[0] b[1] - b[0];});for (int i 0; i itv.size(); i){auto it st.lower_bound({itv[i][0], - 1}); //第一个大于等于左边界//找出左边界和右边界之间包含的查询for (it; it ! st.end() (it-first itv[i][1] || it-first itv[i][1]);){res[it-second] itv[i][1] - itv[i][0] 1; //查询编号得到结果st.erase(it);// 删除已经得到结果的que.防止下次覆盖改变结果}}return res;} }; 原理思路 首先按照区间大小对itv进行排序然后利用setpairint ,int对qr进行排序同时记录其编号并且创建一个res数组存放结果初始化为 -1 。 遍历itv在set中找出第一个大于等于itv[i][0]的位置左端点然后开始遍历set中储存的询问找出小于等于 itv[i][0](右端点的询问根据记录的编号位置给对应位置的res赋值位区间长度同时删除set.erase已经得到结果的询问最终得到所有结果。 注意一定不要把遍历set时的it放入for()中而是放入erase中。 lower_bound(x) 是用来寻找第一个大于等于x的位置。 upper_bound(x) 是用来寻找第一个大于x的位置。 不得不说在写仿函数的时候 lambda 写起来确实方便很多学到了。 一开始我写的丑陋代码大家可以不用看我自己记录一下就过了4分之3把qr排序来优化一下应该也可以过。 class Solution { public:class mycomparison {public:bool operator()(const pairint, int a, const pairint, int b) {return a.first b.first;}};vectorint minInterval(vectorvectorint intervals, vectorint queries) {vectorint qr(10000010, -1); // 用于预处理vectorint res; // 放结果priority_queuepairint ,int, vectorpairint, int, mycomparison que; // pair区间长度编号小堆区间长度排序for (int i 0; i intervals.size(); i){que.push({intervals[i][1] - intervals[i][0] 1, i}); // pair长度编号}while(que.size()){auto t que.top();int len t.first; // 区间长度int idx t.second; // 此区间编号int r intervals[idx][1]; // 右端点int l intervals[idx][0]; // 左端点for (int i l; i r; i){if (qr[i] -1){qr[i] len;}}que.pop();}for (int i 0; i queries.size(); i){res.push_back(qr[queries[i]]);}return res;} };
http://mrfarshtey.net/news/47207/

相关文章:

  • 石家庄营销型网站建设费用html网站开发代码
  • 检测网站为什么打不开了聚名网官网登录入口
  • 网站注销主体注销创业园区网站建设
  • 做网站公司哪家好wordpress 4.5.2 漏洞
  • 建立网站的步骤及费用一般通过什么键来快速渲染场景
  • 揭阳东莞网站建设网站推广软文几个绝招
  • 佛山新网站建设教程搜狐快站做的手机网站
  • 嘉兴网站推广优化沭阳网站设计
  • 网站上seo怎么做十大免费网站模板网站
  • 网站如何添加二维码有什么好的网站查做外贸出口的企业
  • 做英文网站要做适合已经的做机械出口用哪个网站好
  • 视频网站焦点图给装修公司做推广的网站
  • 宿州做网站的公司有哪些长沙做网站a微联讯点很好
  • 网站建设实施流程图网上简历模板
  • 哪个在家做兼职网站比较好怎么创建个人视频号
  • 布拖网站建设贴心网络推广方法
  • 江西中联建设集团有限公司网站简述获得友情链接的途径
  • 保证量身定制的营销型网站芜湖网站
  • 网站诊断方法网销工作内容简述
  • 网站建设优化是干嘛石狮app网站开发
  • 葫芦岛网站制作网站专题建设
  • 江门网站推广软件汽车装饰网站源码
  • 新网站如何做推广百度推广登录平台登录
  • 哪做网站便宜网站建设的软件介绍
  • 制作电子商务网站网站文字编辑怎么做
  • 网站做的好网站建设技术人员工作总结
  • 典型的企业网站成都住建局官网有问题怎么办
  • 免费制作二维码网站wordpress禁止谷歌字体大小
  • win7iis如何做网站网站推广的基本方法
  • 网站关键字如何做网站类型定义