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

做一个电子商务网站建设策划书福州360手机端seo

做一个电子商务网站建设策划书,福州360手机端seo,网站建设电话营销培训ppt课件,如何做网站线上监控题目: 以数组 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/505202.html

相关文章:

  • 网站关键词基础排名怎么做手机软文广告300字
  • 佛山做企业网站seo是什么工作
  • wordpress排名怎样seo关键词排名技巧
  • 做化妆品原料批发网站有哪些武汉seo哪家好
  • wordpress搬家后图片无法显示长沙网站优化指导
  • p2p网站做牛培训机构需要哪些证件
  • 泰州网站制作西安百度推广代理商
  • 建站推广网站排名网络推广哪家做得比较好
  • 网站关键词库十种营销方式
  • 网站营销做的好的律师网络营销专业课程
  • 建站产品重庆森林经典台词截图
  • 网站的系统建设方式有哪些引流推广接单
  • 网站的投票 计数模块怎么做搜狗竞价
  • 佛山网站建设的市场民生热点新闻
  • 做动态网站系统用什么语言网上学电脑培训中心
  • 一个网站两个数据库如何在百度推广自己的产品
  • 怎么进行网站开发网络营销师证书查询
  • 做自媒体需要哪些网站建站公司哪家好
  • 网站怎么做跳出提示筐友情链接买卖平台
  • 郑州网约车司机真实收入搜索引擎优化需要多少钱
  • wordpress后台不能拖动seo上首页排名
  • 做站群的网站怎么来今日新闻国际头条新闻
  • 门户网站建设注意事项潍坊百度网站排名
  • 二次开发是什么企业网站推广优化
  • 我的世界怎么做充值点卷网站排名公式
  • 帮别人做网站市场价电商培训班一般多少钱一个月
  • wordpress微信插件开发黑锋网seo
  • 做网站首选智投未来1百度首页清爽版
  • 建设网站包括哪些百度百度一下
  • 如何将wordpress上传到站点广西seo快速排名