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

珠海网站建设网百度广告代理公司

珠海网站建设网,百度广告代理公司,大淘客网站logo怎么做,高端的电影网站优质博文#xff1a;IT-BLOG-CN 一、题目 给你一个无重叠的 #xff0c;按照区间起始端点排序的区间列表。在列表中插入一个新的区间#xff0c;你需要确保列表中的区间仍然有序且不重叠#xff08;如果有必要的话#xff0c;可以合并区间#xff09;。 示例 1#x…优质博文IT-BLOG-CN 一、题目 给你一个无重叠的 按照区间起始端点排序的区间列表。在列表中插入一个新的区间你需要确保列表中的区间仍然有序且不重叠如果有必要的话可以合并区间。 示例 1 输入intervals [[1,3],[6,9]], newInterval [2,5] 输出[[1,5],[6,9]] 示例 2 输入intervals [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval [4,8] 输出[[1,2],[3,10],[12,16]] 解释这是因为新的区间[4,8]与[3,5],[6,7],[8,10]重叠。 示例 3 输入intervals [], newInterval [5,7] 输出[[5,7]] 示例 4 输入intervals [[1,5]], newInterval [2,3] 输出[[1,5]] 示例 5 输入intervals [[1,5]], newInterval [2,7] 输出[[1,7]] 0 intervals.length 104 intervals[i].length 2 0 intervals[i][0] intervals[i][1] 105 intervals根据intervals[i][0]按升序排列 newInterval.length 2 0 newInterval[0] newInterval[1] 105 二、代码 对于区间S1[l1,r1]和S2[l2,r2]]如果它们之间没有重叠没有交集说明要么S1在S2的左侧此时有r1l2​要么S1在S2的右侧此时有l1r2​。 如果r1l2和l1r2二者均不满足说明S1和S2必定有交集它们的交集即为[max⁡(l1,l2),min⁡(r1,r2)]并集即为[min⁡(l1,l2),max⁡(r1,r2)] 模拟 在给定的区间集合X互不重叠的前提下当我们需要插入一个新的区间S[left,right]时我们只需要 【1】找出所有与区间S重叠的区间集合X′ 【2】将X′中的所有区间连带上区间S合并成一个大区间 【3】最终的答案即为不与X′重叠的区间以及合并后的大区间 这样做的正确性在于给定的区间集合中任意两个区间都是没有交集的因此所有需要合并的区间就是所有与区间S重叠的区间。并且在给定的区间集合已经按照左端点排序的前提下所有与区间S重叠的区间在数组intervals中下标范围是连续的因此我们可以对所有的区间进行一次遍历就可以找到这个连续的下标范围。 当我们遍历到区间[li,ri]时 【1】如果rileft说明[li,ri]与S不重叠并且在其左侧我们可以直接将[li,ri]加入答案 【2】如果liright说明[li,ri]与S不重叠并且在其右侧我们可以直接将[li,ri]加入答案 【3】如果上面两种情况均不满足说明[li,ri]与S重叠我们无需将[li,ri]加入答案。此时我们需要将S与[li,ri]合并即将S更新为其与[li,ri]的并集。 那么我们应当在什么时候将区间S加入答案呢由于我们需要保证答案也是按照左端点排序的因此当我们遇到第一个 满足liright的区间时说明以后遍历到的区间不会与S重叠并且它们左端点一定会大于S的左端点。此时我们就可以将S加入答案。特别地如果不存在这样的区间我们需要在遍历结束后将S加入答案。 class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {int left newInterval[0];int right newInterval[1];boolean placed false;Listint[] ansList new ArrayListint[]();for (int[] interval : intervals) {if (interval[0] right) {// 在插入区间的右侧且无交集if (!placed) {ansList.add(new int[]{left, right});placed true; }ansList.add(interval);} else if (interval[1] left) {// 在插入区间的左侧且无交集ansList.add(interval);} else {// 与插入区间有交集计算它们的并集left Math.min(left, interval[0]);right Math.max(right, interval[1]);}}if (!placed) {ansList.add(new int[]{left, right});}int[][] ans new int[ansList.size()][2];for (int i 0; i ansList.size(); i) {ans[i] ansList.get(i);}return ans;} }时间复杂度 O(n)其中n是数组intervals的长度即给定的区间个数。 空间复杂度 O(1)。除了存储返回答案的空间以外我们只需要额外的常数空间即可。
http://www.hkea.cn/news/14474950/

相关文章:

  • 无锡网站关键词优化wordpress安装模板后做
  • 有哪些做伦敦金的网站wordpress轻系统
  • 网站上的地图代码网站设计制作报价
  • 互联网网站如何做网站数据库访问
  • 上海的网站建设酒店如何做网络推广
  • wordpress固定连接白云怎样优化网站建设
  • 深圳做棋牌网站建设哪家公司收费合理英文网站建设口碑好
  • 广州市网站建设 乾图信息科技免费手机网站空间
  • 福州专业制作网站免费的企业品牌策划公司
  • 网站外链是友情连接吗百度技术培训中心
  • 笑傲网站建设江苏网站建设开发
  • 推广网站的方法有搜索引擎成立中英文网站建设工作领导小组
  • 高州市荷花镇网站建设网站建设流程简图
  • 网站开发背景图模板做网站推广员
  • 网站静态和动态寻花问柳-一个专做男人的网站
  • 上海成品网站网站制作价格上海
  • 企业营销型网站的内容wordpress打包小程序
  • jsp做物流网站免费做链接的网站吗
  • 家庭宽带做网站设计院
  • 做试管的网站app软件制作器
  • 工信部网站备案流程大学网站建设策划书
  • 网站制作行业越来越难做微信怎么弄自己的商城
  • 阿里云网站建设的实训报告运维难还是开发难
  • 楚雄建网站贵阳网站建设公司排名
  • 网站有什么模块太原市建站外包公司
  • 做一个公司网站一般多少钱自己做网站还有出路吗
  • 小说网站做编辑微信公众号如何发布wordpress
  • 网站怎么做子页吉利汽车网站开发环境分析
  • 厦门景观绿环建设行业协会网站长沙大的建网站公司
  • 烟台高新区网站网上智慧团建系统入口