数据结构与算法
文章平均质量分 64
skye_fly
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客网刷题:给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。
题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。 解题思路 考虑用递归求解: 首先考虑终止条件,假设如下只有三个节点的树 存在两种情况: 1)根节点为给定的两个节点中的一个,则直接返回该节点 2)给定的两个节点分别位于根节点左右两侧,也返回根节点 进一步推广到多个节点的树如下: 那么递归遍历每个节点,将每个节点作为根节点,同以上有两种情况: 1)要么返回该根节点(给定两个节点位于该节点的左右子节点中); 2)要么返回该节点的子节点中的某一个子节原创 2021-03-30 15:38:56 · 506 阅读 · 0 评论 -
Dijkstra算法学习梳理
最近学习《数据结构与算法分析》一书,在“图论算法”一章再次接触到了Dijkstra算法,之前没有深入理解,这里对其原理进行梳理。 Dijkstra算法求解的是“单源最短路径问题”,是“贪婪算法”的一个很好的应用,按照我的理解就是“无权最短路径的类拓扑排序算法”+“调整策略”。而此处的调整策略就是“贪婪算法”的核心。 下面简要介绍涉及的相关概念: 1.贪婪算法:简单地说就是程序运行的每一个当前时间点,都会选择对当前最有利的情况,如果之前的决策导致的结果没有现在的好,那就重新调整为当前的决策。(前提是当前时刻做原创 2021-02-26 13:28:25 · 533 阅读 · 0 评论
分享