Saturday, November 4, 2017

[LeetCode]Self Crossing

题目要求O(n)时间,O(1)空间的解法。第一眼看上去并不是很直观,感觉可能要存之前所有的interval,然后看当前interval是否和相互垂直的那一组interval有交点。但是画一画图就大概可以知道,我们只需要check三种情况,如下图所示:



也就分别对应以下三种情况:

  • x[i]和x[i - 3]相交
  • x[i]和x[i - 4]相交
  • x[i]和x[i - 5]相交
代码如下:





No comments:

Post a Comment