博主渣渣一枚,刷刷leetcode给自己瞅瞅,大神们由更好方法还望不吝赐教。题目及解法来自于力扣(LeetCode),传送门

算法:

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

  刷题以来第一次比较顺利的做出来,并且效率还可以,嘻嘻。

public class Solution {
public int[][] Merge(int[][] intervals)
{
var outBegin = ;
var outNext = ; var result = new List<int[]>(); intervals = intervals.OrderBy(x => x[]).ToArray(); while (outNext < intervals.Length)
{
if (result.FirstOrDefault() != null && result[outBegin][] >= intervals[outNext][])
{
outNext++;
continue;
} if (result.FirstOrDefault() == null)
{
result.Add(intervals[]);
}
else if (result[outBegin][] >= intervals[outNext][])
{
result[outBegin][] = intervals[outNext][];
}
else
{
result.Add(intervals[outNext]);
outBegin++;
} outNext++;
} return result.ToArray();
}
}

  思路其实是受了昨天刷题官方解法的启发,滑动窗口。与之前一样,有一些特殊情况需要额外处理一下,如{[1,4],[2,3]},这种情况下[2,3]其实是包含在[1,4]内部的,所以其实输出的结果还是[1,4]。又如[2,4],[1,4]这种例子,如果只是简单的循环不排序的话,容易产生[2,4],[1,4]这样两个区间的错误答案。

  官方解法传送门:https://leetcode-cn.com/problems/merge-intervals/solution/he-bing-qu-jian-by-leetcode/

  官方提供了两种解法,第一种暴力穷举的方式就不谈了。第二种其实和上面的滑动窗口的思路类似。

  

最新文章

  1. 利用sphinx为python项目生成API文档
  2. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看
  3. js的日期控件
  4. spawn-fcgi
  5. 删除重复记录(Mysql,SqlServer,Sqlite)
  6. 让站长在SEO时更得心应手的六个细节
  7. leetcode之Count Complete Tree Nodes
  8. localStorage保存账号密码
  9. Java的反射机制及应用实例
  10. Git版本控制器的使用
  11. nginx配置https双向验证(ca机构证书+自签证书)
  12. 使用fiddlercore修改网页的返回内容
  13. HAProxy详解(二):HAProxy基础配置与应用实例
  14. 【原创】运维基础之OpenResty(Nginx+Lua)+Kafka
  15. Unity Mathf/Math数学运算函数说明全集(Chinar总结)
  16. windows上python上传下载文件到linux服务器指定路径【转】
  17. [RequireComponent(typeof(....))]
  18. Notes of Daily Scrum Meeting(12.5)
  19. Oracle 的四种连接-左外连接、右外连接、内连接、全连接
  20. HBTS(HBOI) 2019 真实退役记

热门文章

  1. luogu P1908 逆序对 |树状数组
  2. iOS开发-KVO的奥秘
  3. GZIP怎么运用在.NET MVC 简单实现
  4. MYSQL“错误代码#1045 Access denied for user &#39;root&#39;@&#39;********8&#39; (using password:YES)”
  5. [TimLinux] Python 再谈装饰器
  6. openlayers5-webpack 入门开发系列结合 echarts4 实现散点图(附源码下载)
  7. BZOJ 3107 [cqoi2013]二进制a+b (DP)
  8. tensorflow sequence_loss
  9. 关于C 语言的字符串常量拼接
  10. Swing JTable使用