arts-2019-05-12

Algorithm 算法题

每周至少做一个leetcode 的算法题

https://leetcode-cn.com/problems/merge-two-sorted-lists/

21. 合并两个有序链表

注意是有序的。怎么保证有序呢?

最直接的想法,循环遍历两个链表,按值大小新生成一个列表。然后按列表重新生成一遍链表。时间复杂度 O(m + n + m + n)。

然后发现,其实每一步都是比较两个 Node,把值较小的或者不为空的节点排在前面。于是,可以......

2019-05-19 23:58 13

arts-2019-05-19

Algorithm 算法题

每周至少做一个leetcode 的算法题

https://leetcode-cn.com/problems/the-skyline-problem/

218. 天际线问题

只考虑左右节点,才可能发生变化。

维护当前最大高度数组(堆),左节点高度加进来,右节点高度去掉。

当前高度为最大高度,如果与上次高度不同,记录一下。

Review 外国文章

阅读并点评至少一篇英文技术文章

http://antirez.com/news/129

......

2019-05-19 23:58 7

arts-2019-05-05

Algorithm 算法题

每周至少做一个leetcode 的算法题

https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/

236. 二叉树的最近公共祖先

思路:

将二叉树转化为数组。

在数组中找到两个元素下标。

循环比较下标,(大的下标 - 1) / 2。

结果超时。。。

总结:遍历整棵树 O(n) + 找两个下标 O(n) + 循环比较 2O(logn......

2019-05-05 21:53 11