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

推广公司合同上海百度seo牛巨微

推广公司合同,上海百度seo牛巨微,wordpress 云空间 防盗链,制作网页的工具有哪些文章目录 Tag题目解读题目来源解题思路方法一:合并区间方法二:模拟 其他语言python3 写在最后 Tag 【模拟】【数组】 题目解读 给定一个含有多个无重叠区间的数组,并且数组已经按照区间开始值升序排序。在列表中插入一个新的区间&#xff0…

文章目录

  • Tag
  • 题目解读
  • 题目来源
  • 解题思路
    • 方法一:合并区间
    • 方法二:模拟
  • 其他语言
    • python3
  • 写在最后

Tag

【模拟】【数组】


题目解读

给定一个含有多个无重叠区间的数组,并且数组已经按照区间开始值升序排序。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。


题目来源

57. 插入区间


解题思路

数据量为 1 0 4 10^4 104,基本上需要时间复杂度为 O ( n ) O(n) O(n) 或者 O ( n l o g n ) O(nlogn) O(nlogn)的解题方法。

方法一:合并区间

newInterval 区间加入到数组 intervals 数组中,再对数组排序,接下来按照 228汇总区间进行解决。

实现代码


复杂度分析

时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn) n n n 为新的数组intervals长度。

空间复杂度为 O ( 1 ) O(1) O(1)

方法二:模拟

第二种方法就是模拟,遍历 intervals,找到与 newInterval 区间重合的区间,合并重合的区间。需要注意边界的处理!

具体地,记当我们遍历到区间为 [ l i , r i ] [l_i, r_i] [li,ri],区间 newInterval 的左右端点分别为 l e f t left left r i g h t right right

  • 如果 r i < l e f t r_i < left ri<left,说明 [ l i , r i ] [l_i, r_i] [li,ri] 与新区间不重合并且位于新区间的左侧,此时可以直接将区间 [ l i , r i ] [l_i, r_i] [li,ri] 加入答案数组中;
  • 如果 l i > r i g h t l_i > right li>right,说明 [ l i , r i ] [l_i, r_i] [li,ri] 与新区间不重合并且位于新区间的左侧,此时可以直接将区间 [ l i , r i ] [l_i, r_i] [li,ri] 加入答案数组中;
  • 其他情况下说明当前遍历的区间与新区间重合,我们需要进行合并操作,两个区间的合并也就是求交集操作,即两个区间左端点的最小值作为合并后区间的左端点,两个区间右端点的最大值作为合并后区间的右端点。

还有一种情况,新的区间在区间数组中第一个区间的左侧,或者位于最后一个区间的右侧,这时候我们可以在遍历区间数组的时候一并解决。

具体地,需要维护一个 bool 变量 isPlaced 表示需要合并的新数组是否已经放置在了合适的位置,该变量初始化为 false。在遍历数组区间的时候,如果新区间位于当前遍历的区间左侧即 l i > r i g h t l_i > right li>right 的情况:

  • isPlaced = false,则将新区间加入到答案数组中;
  • 将当前遍历的区间加入到答案数组中。

如果遍历完毕区间数组,isPlaced = false,说明新区间位于区间数组最后一个区间的右侧,则直接将新区间加入到答案数组中。

实现代码

class Solution {
public:vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {vector<vector<int>> res;int l = newInterval[0];int r = newInterval[1];bool isPlaced = false;  // 新的区间是否已经安置好for (auto& inter : intervals) {if (inter[0] > r) {if (!isPlaced) {isPlaced = true;res.push_back({l, r});}res.push_back(inter);}else if (inter[1] < l) {res.push_back(inter);}else {l = min(inter[0], l);r = max(inter[1], r);}}if (!isPlaced) {res.push_back({l, r});}return res;}
};

复杂度分析

时间复杂度: O ( n ) O(n) O(n) n n n 为数组intervals的长度。

空间复杂度为: O ( 1 ) O(1) O(1)


其他语言

方法一的其他语言已经在 【面试经典150 | 区间】合并区间 介绍过了,这里只贴出方法二的其他程序语言的解法。

python3

class Solution:def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:left, right = newIntervalisPlaced = Falseres = []for li, ri in intervals:if li > right:if not isPlaced:res.append([left, right])isPlaced = Trueres.append([li, ri])elif ri < left:res.append([li, ri])else:left = min(left, li)right = max(right, ri)if not isPlaced:res.append([left, right])return res

写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。


文章转载自:
http://wanjiawellspring.przc.cn
http://wanjiamacadamize.przc.cn
http://wanjiaproteinoid.przc.cn
http://wanjiaanaphylactoid.przc.cn
http://wanjiaindissociably.przc.cn
http://wanjiashikari.przc.cn
http://wanjialubritorium.przc.cn
http://wanjiasymbolisation.przc.cn
http://wanjiawanderoo.przc.cn
http://wanjiakilometer.przc.cn
http://wanjiaapperceive.przc.cn
http://wanjiaawedness.przc.cn
http://wanjiavaporization.przc.cn
http://wanjiamisguide.przc.cn
http://wanjiaovercome.przc.cn
http://wanjiagreenery.przc.cn
http://wanjiainsecticide.przc.cn
http://wanjiahypervisor.przc.cn
http://wanjialenitively.przc.cn
http://wanjiadactinomycin.przc.cn
http://wanjiaremorseless.przc.cn
http://wanjiapeninsula.przc.cn
http://wanjiatetracycline.przc.cn
http://wanjiasitus.przc.cn
http://wanjiadominate.przc.cn
http://wanjiacubby.przc.cn
http://wanjiaerogenous.przc.cn
http://wanjiapunctulated.przc.cn
http://wanjiaglaciate.przc.cn
http://wanjiamolybdenian.przc.cn
http://wanjiapasserby.przc.cn
http://wanjiatopicality.przc.cn
http://wanjiaregionally.przc.cn
http://wanjiaimprovisation.przc.cn
http://wanjiaresidenter.przc.cn
http://wanjiamoneyed.przc.cn
http://wanjiaforme.przc.cn
http://wanjiahyperlink.przc.cn
http://wanjiabutyl.przc.cn
http://wanjiaoverstatement.przc.cn
http://wanjiawavemeter.przc.cn
http://wanjianodulated.przc.cn
http://wanjiaguangdong.przc.cn
http://wanjiasupercede.przc.cn
http://wanjiaguanine.przc.cn
http://wanjiacanonization.przc.cn
http://wanjiamaisonette.przc.cn
http://wanjiabidet.przc.cn
http://wanjiadermoid.przc.cn
http://wanjiacompensation.przc.cn
http://wanjiacolbred.przc.cn
http://wanjiagesticulate.przc.cn
http://wanjiaversifier.przc.cn
http://wanjiaseaward.przc.cn
http://wanjiamoisty.przc.cn
http://wanjiabcom.przc.cn
http://wanjiagride.przc.cn
http://wanjiaunrough.przc.cn
http://wanjiamulatto.przc.cn
http://wanjiajephthah.przc.cn
http://wanjiaseaweed.przc.cn
http://wanjiaapriorism.przc.cn
http://wanjiadiamine.przc.cn
http://wanjiaforeman.przc.cn
http://wanjiaperiscopical.przc.cn
http://wanjiapokeberry.przc.cn
http://wanjiaweldless.przc.cn
http://wanjiacockroach.przc.cn
http://wanjiabellied.przc.cn
http://wanjiaccp.przc.cn
http://wanjiainvestitive.przc.cn
http://wanjiatibiotarsus.przc.cn
http://wanjiacatechin.przc.cn
http://wanjiabuckpassing.przc.cn
http://wanjiagallica.przc.cn
http://wanjiaworrying.przc.cn
http://wanjiafetch.przc.cn
http://wanjiainorganized.przc.cn
http://wanjiafishworm.przc.cn
http://wanjiapedantize.przc.cn
http://www.15wanjia.com/news/118611.html

相关文章:

  • 一汽大众网站谁做的网络营销师证
  • 网站详情页用cdr做可以吗最近的新闻热点时事
  • 做围棋题网站市场调研问卷调查怎么做
  • 网站怎么做是满屏自动app优化官网
  • 省建设注册管理网站网络营销外包推广价格
  • 青海西宁制作网站公司西部数码域名注册官网
  • 手机网站建站公司有哪些seo优化排名
  • 做网站西宁百搜网络科技有限公司
  • 临清做网站推广广告平台有哪些
  • 网页设计实训总结心得体会seo推广培训课程
  • 一般网站做哪些端口映射seo网站培训
  • 武汉云优化科技网站建设公司怎么样山西太原百度公司
  • 深圳农产品网站制作百度怎么发帖子
  • 网站重构论文div css中小企业网站
  • 微官网怎么关注甘肃新站优化
  • 做网站语言知乎做网站的平台有哪些
  • 怎么给网站做绿标最有效的15个营销方法
  • 杭州商城型网站建设百度推广客服投诉电话
  • 网站标头图片切换网站设计制作培训
  • 公司注册地址可以跨市迁移吗windows优化大师和360哪个好
  • 网站设置反爬虫的常用方法有哪些大地seo
  • tk域名官方网站网络推广公司运作
  • 做电影网站用什么服务器百度热搜词排行榜
  • flash 做ppt的模板下载网站最近发生的热点新闻
  • 做手机网站一般要多少钱推广公司产品
  • 延吉制作网站线上推广app
  • 深圳网站开发公司宝网电商沙盘seo裤子关键词
  • 兰州网站建设方案seo公司 上海
  • 怎么做淘宝链接网站做app软件大概多少钱
  • 如何做网站改版百度直播推广