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

网站怎么做好优化株洲渌口区

网站怎么做好优化,株洲渌口区,自己做网站怎么样,什么是网站模板设计435. 无重叠区间 我认为区间类的题型#xff0c;大多数考验的是思维能力#xff0c;以及编码能力#xff0c;该类题型本身并无什么算法可言#xff0c;主要是思维逻辑#xff0c;比如本题实际上你只需要能够总结出重叠与不重叠的含义#xff0c;再加上一点编码技巧#…435. 无重叠区间 我认为区间类的题型大多数考验的是思维能力以及编码能力该类题型本身并无什么算法可言主要是思维逻辑比如本题实际上你只需要能够总结出重叠与不重叠的含义再加上一点编码技巧便可完成。 解题思路 正如前面所说那么解题的关键思路就在于找到重叠区间的特性即可我们不妨先按照start进行一次排序再进行观察比如数组[[1,2],[2,3],[3,4],[1,3]]排序后为[[1,2],[1,3],[2,3],[3,4]]通过观察我们很容易发现如果前一个数组的end大于下一个数组的start则这两个数组一定发生了重叠这个比较容易理解如图所示分别有两个数组[1,2]和[1,3] 重叠部分一眼可见但关键在于产生重叠后应该留下谁舍弃谁我们不妨还是画图理解按照题目示例接下来一组数字是[2,3] 我们可以分开讨论假设我们选择保留[1,3]那么很明显下一组[2,3]将变为重叠部分。 而如果我们选择保留[1,2]则不会再产生重叠部分。 根据题目要求需要我们通过移除最少的区间数量来实现区间互不重叠因此应当使用第二种方案从原理上来说就是当两个区间产生重叠后我们应当保留区间范围更小的一组因为这样更有可能避免与后面的区间再产生重叠很容易理解的一点概念区间范围越大越容易发生重叠 结论假设有[[s1, e1], [s2, e2], [s3, e3] ... [sn, en]]如果e1 s2则将触发[s1 ,e1],[s2, e2]合并合并规则为如果e1 e2合并为[s1, e2]否则合并为[s1, e1]如果e1 s2则无需合并直接检查下一个区间即可。 代码实现 public int eraseOverlapIntervals(int[][] intervals) {// 不要忘了先按start进行排序Arrays.sort(intervals, (o1, o2) - o1[0] - o2[0]);int ans 0;int end intervals[0][1];for(int i 1; i intervals.length; i){int start intervals[i][0];if(end start){end Math.min(end, intervals[i][1]);ans;}else{end intervals[i][1];}}return ans; } 56. 合并区间 解题思路 本题与上一题比较相似都是处理重叠区间的问题我们同样可以画图理解以题目示例1为例[[1,3],[2,6],[8,10],[15,18]]。 首先与前一题一样如果前一个数组的end大于下一个数组的start则表示一定出现了重叠而关于end部分的去留则正好与前一题相反前一题保留的是较小部分本题则需要保留较大部分。 结论假设有[[s1, e1], [s2, e2], [s3, e3] ... [sn, en]]如果e1 s2则将触发[s1 ,e1],[s2, e2]合并合并规则为如果e1 e2合并为[s1, e1]否则合并为[s1, e2]如果e1 s2则无需合并直接检查下一个区间即可。 代码实现 由于本题需要在原数组上进行修改因此先借用一个list辅助记录实际处理逻辑并没区别。 class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals, (o1, o2) - o1[0] - o2[0]);Listint[] list new ArrayList();list.add(new int[]{intervals[0][0], intervals[0][1]});for(int i 1; i intervals.length; i){int start intervals[i][0];int end intervals[i][1];if(list.get(list.size()-1)[1] start){list.add(new int[]{start, end});}else{list.get(list.size()-1)[1] Math.max(end, list.get(list.size()-1)[1]);}}return list.toArray(new int[list.size()][]);} }1288. 删除被覆盖区间 解题思路 前面两题处理的都是数据范围重叠的问题本题要解决的则是数据范围覆盖问题我们先要搞清楚符合覆盖的条件有哪些很明显当s1 s2 且 e2 e1时则认为[s2, e2]区间被[s1, e1]区间覆盖。 如下图所示 结论假设有[[s1, e1], [s2, e2], [s3, e3] ... [sn, en]]当s1 s2 且 e2 e1时则可删除区间[s2, e2]这里需要注意的是为了方便处理我们可以让start按照升序排序的同时并让end按照降序排序这样代码实现时只要满足e1 e2即可认为被覆盖了。实际上就是为了方便进行判断s1 s2 且 e2 e1 代码实现 class Solution {public int removeCoveredIntervals(int[][] intervals) {Arrays.sort(intervals, (o1, o2) - o1[0] o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]);int cnt 0;int preEnd intervals[0][1];for (int i 1; i intervals.length; i) {int curEnd intervals[i][1];if (preEnd curEnd) {cnt;} else {preEnd curEnd;}}return intervals.length - cnt;} }
http://www.pierceye.com/news/913075/

相关文章:

  • 网站建设得花多少钱做购物网站能否生存
  • 多语言网站 用什么cms深圳Wordpress网站
  • 常州市建设工程质量监督站网站开发公司设计管理岗位述职
  • 国外网站顶部菜单设计谷歌seo文章
  • 梅州网站开发外国自适应企业网站
  • 大型网站建设动力无限哪个公司的装饰设计公司
  • 网站建设与管理自考wordpress替换默认的编辑器
  • 企业在网站推广咸阳做网站开发公司
  • 从美洲开始做皇帝免费阅读网站wordpress嵌入优酷视频播放
  • 长沙 外贸网站建设国际足联世界排名
  • 辽宁省建设执业继续教育协会网站深圳网站制作建设服务公司
  • 个人网站备案都需要什么运营seo是什么意思
  • 局域网内部网站建设app下载苏州网络推广企业
  • 重庆美邦 网站建设保定最新消息发布
  • 东莞手机建网站旅游网站 分析
  • 网站seo优化技术入门做网站怎样实现网上支付
  • 陕西西安网站建设公司源码编程器
  • 网站开发的前端技术有哪些软件制作是什么专业
  • 淘宝网站建设目标是什么意思厦门seo计费
  • 高端网站建设注意简述网络营销的基本方法
  • html5网站开发实例教程沈阳软件定制开发公司
  • 做透水砖的网站下载爱南宁乘车
  • 免费建设工程信息网站许昌市建设路小学网站
  • 网站建设公司华网天如何设置自己的网址
  • 株洲做网站那家好黑龙江网站设计
  • 培训视频网站百度权重划分等级
  • 重庆江北区网站建设怎么查询网站建设时间
  • 做网站一个月能挣多少怎么做营销推广
  • 网站做镜像检查漏洞网站建设需要哪些步骤
  • 广州手机建设网站wordpress 读者墙