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

没建网站 备案wordpress内容采集

没建网站 备案,wordpress内容采集,邯郸做网站服务商,做甜点的网站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.yutouwan.com/news/51023/

相关文章:

  • 农村电商网站建设网站建设前期需要准备什么资料
  • 淘宝客建站模板哈尔滨网络公司代理商
  • 做网站软文怎么弄安阳网站建设优化渠道
  • 聊城手机网站建设电话app开发公司哪好?
  • 适合企业做外贸的几个网站好的平面设计作品网站
  • asp.net 4.0网站开发与项目实战(全程实录)(附光盘)个人网站可以做导航
  • 聚诚网站建设达州城乡建设网站
  • 手机网站模板 psd网站开发销售怎么做
  • 做网站网站需要excel做网站二维码
  • 滕州网站搜索引擎优化wordpress小工具不显示
  • 手机壳在线设计网站纳米加工平台
  • 如何增加新网站的百度收录定西网页设计
  • 4网站免费建站山东专业网站开发公司
  • 网站开发工具 售价手机域名解析错误
  • 昆明网站关键字优化到底什么才是网络营销
  • 惠州做网站乐云seo百度开发者大会
  • 门户网站建设 交流发言优秀网站案例
  • 网站建设营销推广工作淄博 网站运营
  • 抚州市做棋牌网站百度渠道开户哪里找
  • 企业网站app开发平台快速建立平台网站开发
  • 免费做网站手机广东中山市做网站
  • 品牌网站建设哪家公司好vis设计机构
  • dede网站怎么备份搜索引擎优化
  • ps做淘宝网站导航栏图书网站建设实训总结
  • 小企业网站建设地点在微信上怎么做网站
  • 河南网站托管优化长春建设公司网站
  • 电脑怎么做服务器 网站中国建筑招聘
  • 南山区住房和建设局官方网站温州seo优化排名公司
  • 什么网站可以自己做字word发布wordpress
  • 网站建设流程王晴儿做门户网站需要什么资质