![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python数据结构与算法
再见鲁鲁修
biubiubiu
展开
-
前序遍历 中序遍历 后续遍历 的真正理解
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中序以及后序三种遍历方法,广度遍历即我们平常所说的层次遍历。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁,而对于广度遍历来说,需要其他数据结构的支撑,比如堆了。所以,对于一段代码来说,可读性有时候要比代码本身的效率要重要的...原创 2019-05-08 21:58:49 · 2327 阅读 · 0 评论 -
最正确最全面的满二叉树,完全二叉树,平衡二叉树,二叉搜索树(二叉查找树)
二叉树: 每个结点不超过2个子树的树结构。满二叉树:一个结点要么是叶子节点,要么有两个叶子结点。(国内教程定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树)完全二叉树:深度为h,除h层外,h-1层是满二叉树,h层结点连续集中在左边。(若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这...原创 2019-05-17 11:43:42 · 810 阅读 · 0 评论 -
Dijkstra算法最清楚的讲解
https://blog.csdn.net/heroacool/article/details/51014824原创 2019-08-22 23:12:23 · 185 阅读 · 0 评论 -
2020年携程算法工程师(1卷)第一题,每个不同字符最长字符串长度
s='aabbcddc'要求输出 2,2,4s = 'aabbcddc'dic = {}lis = []new_start = 0for index,i in enumerate(s): if index <= new_start:#如过小于上次的结束值,跳过 continue else: start = index ...原创 2019-09-09 20:22:39 · 233 阅读 · 0 评论 -
python学习动态规划
动态规划是什么,意义在哪里:今天花了几个小时,重新理解了一下dp。。。首先我们要知道为什么要使用dp,我们在选择dp算法的时候,往往是在决策问题上,而且是在如果不使用dp,直接暴力效率会很低的情况下选择使用dp.那么问题来了,什么时候会选择使用dp呢,一般情况下,我们能将问题抽象出来,并且问题满足无后效性,满足最优子结构,并且能明确的找出状态转移方程的话,dp无疑是很好的选择。...原创 2019-09-09 20:22:01 · 151 阅读 · 0 评论 -
排序算法的时间复杂度
原创 2019-09-10 21:38:11 · 190 阅读 · 0 评论