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

广州市海珠区建设局网站电商运营培训班多少钱

广州市海珠区建设局网站,电商运营培训班多少钱,英文网站建设注意什么,海口制作网站题目: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 解法一(for循环暴力解算&…

题目:

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

解法一(for循环暴力解算):

依次遍历intervals中的每个元素i,然后根据每个索引元素i与intervals后面的索引位置元素j进行重复区间判断,若不是重复区间,则遍历j后续的索引元素直至遍历至intervals的最后一个位置元素,若是则更新重复区间,删除原有j和i索引位置的元素,添加新的索引位置元素,然后迭代进入下一个嵌套函数直至,i和j均没有可重叠区间位置,如下为笔者代码:

class Solution {
public:void getupdate(vector<vector<int>>& results){int length = results.size();vector<int> result;for(int i=0;i<length;i++){for(int j=i+1;j<length;j++){int i_long = results[i][1]-results[i][0];int j_long = results[j][1]-results[j][0];int max_long = max(abs(results[j][1]-results[i][0]), abs(results[i][1]-results[j][0]));if(i_long+j_long>=max_long){int new_left = min(results[i][0], results[j][0]);int new_right = max(results[j][1], results[i][1]);results.erase(results.begin() + j);results.erase(results.begin() + i);result.push_back(new_left);result.push_back(new_right);results.push_back({result});getupdate(results);return;}}}}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> results = intervals;getupdate(results);return results;}
};

解法二(排序):

首先对数组intervals进行排序,如果我们按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的。如下图所示,标记为蓝色、黄色和绿色的区间分别可以合并成一个大区间,它们在排完序的列表中是连续的:

我们用数组 merged 存储最终的答案。首先,我们将列表中的区间按照左端点升序排序。然后我们将第一个区间加入 merged 数组中,并按顺序依次考虑之后的每个区间:

    1、如果当前区间的左端点在数组 merged 中最后一个区间的右端点之后,那么它们不会重合,我们可以直接将这个区间加入数组 merged 的末尾;

    2、否则,它们重合,我们需要用当前区间的右端点更新数组 merged 中最后一个区间的右端点,将其置为二者的较大值。

如下为实现代码:

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if (intervals.size() == 0) {return {};}sort(intervals.begin(), intervals.end());vector<vector<int>> merged;for (int i = 0; i < intervals.size(); ++i) {int L = intervals[i][0], R = intervals[i][1];if (!merged.size() || merged.back()[1] < L) {merged.push_back({L, R});}else {merged.back()[1] = max(merged.back()[1], R);}}return merged;}
};

时间复杂度:O(nlogn),其中 n 为区间的数量。除去排序的开销,我们只需要一次线性扫描,所以主要的时间开销是排序的 O(nlogn)。空间复杂度:O(logn),其中 n 为区间的数量。这里计算的是存储答案之外,使用的额外空间。O(logn) 即为排序所需要的空间复杂度。

笔者小记:

1、对于vector<vector<int>>& intervals,函数sort(intervals.begin(), intervals.end());表示利用intervals内层的第一个元素的大小对intervals外层元素进行排序。

http://www.dtcms.com/wzjs/420682.html

相关文章:

  • 做母婴育儿类网站好做seo排名吗重庆seo博客
  • 山东省个人网站备案公司做网站需要多少钱
  • 网站建设免费代理龙岗网站制作
  • 苏州松陵镇哪里做网站郑州seo代理商
  • 天津中小企业网站制作长春网站推广公司
  • 住房和城乡建设部网站建筑电工淘宝客seo推广教程
  • 外贸英文网站建设价格专业技能培训机构
  • 一个网站如何赚钱西安建站推广
  • nginx wordpress 重写济南seo优化外包
  • 网站建设是基础服务吗各种手艺培训班
  • 农产品信息网站的建设营销型网站建设企业
  • 做彩页素材的网站淘宝指数查询官网
  • java web网站建设百度推广费用可以退吗
  • word 发布到wordpress西安seo托管
  • 做第三方网站注意什么b站怎么推广
  • 宁夏固原住房和建设局网站北京整站线上推广优化
  • 石家庄求做网站在seo优化中
  • 注册了一个域名怎么做网站各大网站提交入口
  • 手机网站自助建站源码电脑网页制作
  • 怎么做阿里国际网站的数据分析品牌广告图片
  • 易趣网的网站架构推广软文范文
  • 用asp做的网站百度网页怎么制作
  • 手机网站 滑动翻页宁波seo自然优化技术
  • 社交网站设计百度信息流怎么投放
  • 网站建设经验做法和取得的成效百度关键词seo排名优化
  • 京东商城网站建设目标今日新闻 最新消息 大事
  • 手机如何做微电影网站长沙网站制作
  • 西安营销型网站建设公司聚名网
  • 网站做短信接口具体方法网站排名软件
  • 旅游网站源代码模板深圳抖音推广公司