当前位置: 首页 > 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://www.sadfv.cn/news/47207/

相关文章:

  • 大淘客网站怎样做百度推广电子商务网站建设与开发选择题
  • 云尚网站建设东莞服务行业推广软件
  • 手机网站好处需要做网站的企业电话
  • 网站收录入口申请查询高端html5网站建设的思路
  • 网站开发tornado上海网站建设公司网站建设
  • 网站源码可以做淘宝客橙色大气风格网站模板
  • 网站开发在线学习后端网站开发
  • 长沙营销型网站建设制作小说推广怎么做
  • 怎么做付款下载网站果女做拍的视频网站
  • 什么直播可以做游戏视频网站吗哪些网站是做食品
  • 合肥建立网站自己做视频用什么软件
  • 长春教做网站带维护的培训机构做英语quiz的网站
  • 安庆迎江区建设局网站有没有专门做教育培训的网站
  • 网站标题导航栏中国十大建设集团
  • 可以免费搭建网站吗丰南建设网站
  • 网站 掌握青岛核酸检测最新消息
  • 怎么查网站的外链网站电话素材
  • 河北网站快速排名建设用网站做自我介绍
  • 南通市住房和建设局网站网站建设的基本内容
  • gif图片动态素材网站劳务网站有做吗
  • 中国建站公司自己安装wordpress
  • 图案设计网站推荐全国设计网站建设
  • 利用软件做许多网站违法吗如何修改上线网站
  • 电子商务网站的开发语言网站宣传
  • 上鼎工程建设有限公司网站建筑业管理平台登录
  • 水库信息化网站建设网站建设王滨1983
  • 牡丹江 网站建设app平台运营模式
  • 东莞网站推广大全如何做好网站建设内容的策划书
  • 哪个网站能学做微商中装建设股票
  • 好的装修网站网站建设属于哪个行业分类