arts-2019-07-07

Algorithm 算法题

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

https://leetcode-cn.com/problems/longest-increasing-subsequence/

我的思路是建一个辅助结构,复杂度O(n**2),不是最佳解法

定义一个辅助类,一个哨兵节点root = Node(float('inf')),从后往前遍历nums,调用root.append得到对应的高度,最大的高度即为所求。

class Node(o......

2019-07-08 00:13 70

arts-2019-05-12

Algorithm 算法题

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

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

21. 合并两个有序链表

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

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

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

2019-07-01 12:25 35

Arts 2019-03-17

Algorithm 算法题有效的括号

easy

https://leetcode-cn.com/problems/valid-parentheses/

思路:

查每对符号的个数。无法保证顺序,比如“}{”不符合。

正则表达式。之前读《正则表达式》时书里讲过,遇到多层符号匹配,正则处理比较难。

栈。每次与栈顶元素匹配,如果匹配则往下进行。

栈这个思路可行,最终可以满足顺序和匹配性。实现过程中要注意栈可能为空的情况。

实现完以后,是否可以再优化呢?

研......

2019-07-01 12:24 53