【LeetCode】Binary Search Tree

突然发现前面应该要多写一点的@@
我本来没打算花那麽多篇幅讲 Leetcode...
铁人赛有几篇写得很好,参考那些够看了,不用点进来这篇。

Binary search tree 是一种特别的 Binary tree,
left subtree < root < right subtree,所以可以快速的查找,最惨要找 O(k) 次,k 是树深。

bst 大概有三种类型的题目:

1. 实作 BST

从已排序的 array 和 linkedlist 建造一棵 bst:
108. Convert Sorted Array to Binary Search Tree
109. Convert Sorted List to Binary Search Tree
在 bst 中搜寻:
700. Search in a Binary Search Tree

2. 考 BST 本身

因为他的特殊性质,反而比一般 binary tree 好做事
例如同样是找 LCA,也就是两个节点最近的共同祖先,

235. Lowest Common Ancestor of a Binary Search Tree
236. Lowest Common Ancestor of a Binary Tree
binary search tree 会简单很多。

另外就是写 bst 题目,upperbound lowerbound 要想清楚,
230. Kth Smallest Element in a BST
938. Range Sum of BST
98. Validate Binary Search Tree

3. 需要利用 BST 解题的题型

题目如果有需要一个个加入节点,然後做 binary search 的需求就会用到。
因为考点不是 bst 本身,
通常可以用 bisect module 而不用自己实作,
可以熟悉一下 bisect 有哪些东西好用。

这类题目就不在这里介绍了,通常难度在 medium 以上,并且会有不同的演算法组成 combo 技,例如最常见跟 prefix sum 一起用。

有关 bst 的题目可以从这里看 Binary Search Tree

碎念

我要开始另外一个系列了,
因为误会结果这个系列没有团报到QQ
反正本来就是自我挑战,
应该不会误人子弟ㄅ。


<<:  Day11 Docker

>>:  # Day2 Boot image header in RISC-V Linux

[FGL] 服务简单收 - IMPORT 3 利用http与XML套件取 Web资源

没有人能一次做好所有的事情,也不可能有一套系统收尽所有资料。既然如此,如何适当且适时的抓取外部资料...

Day10 永丰金API 订单通知服务

昨天提到今天要讲一个交易上特别重要的流程,就是付款状态! 为什麽呢? 因为在交易的过成功前是最重要的...

Flutter基础介绍与实作-Day30 最後总结

今天是最後一天了好开心喔!!!原本以为我自己没办法做完这30天,没想到我竟然在不知不觉中写完了,突然...

Day23:交给专业的来

我们来看看Executor介面的内容: package java.util.concurrent; ...

[Day20] Flutter GetX routing

这篇主要讲GetX在页面切换之间的路由(上下页的前後文关系) 初步先建立一个routes的资料夹 里...