实践中的算法
Situation Task Action Result (STAR)
回溯算法
S (Situation) 寻找到目标节点的路径
Vue
项目中,需要实现侧边与路由关联,目录约定如下
1 | interface RouteItem { |
T (Task)
- 找到
Target
在RouterItem
中的path
链路
A (Action)
- 尝试了利用
Vue.Router
中的matched
字段,但是发现和路由配置强关联了。想到路径算法,计算叶子路径,考虑到叶子路径关系,以及剪枝。采用算法实现如下。
1.1 递归回溯
1 | function findPath(asides:RouteItem[], activeAside:Target,res:Target[][]=[],path=[]) { |
1.2 迭代回溯
1 | function findPath(asides:RouteItem[], activeAside:Target) { |
R (Result)
- 成功达到目的,最终结果如下
1 | function findPath(asides:RouteItem[], activeAside:Target) { |
贪心系列
TODO
S (Situation)
需要实现一个效果:
A (Action)
1 |
前缀树
TODO
评论