刷刷题
文章平均质量分 64
刷刷刷,offer来来来
识久
这个作者很懒,什么都没留下…
展开
-
剑指offer07——重建二叉树
前、中序遍历有何意义?已知条件:前序,中序遍历,重建二叉树。给出的前序、中序遍历各自有什么意义呢?前序遍历:根–>左–>右,不难看出无论何时前序遍历第一个肯定是根节点,因此我们找到了根!剩下只要找到左孩子和右孩子就行了,把左子树、右子树抽象成只有一个节点:左孩子、右孩子,找到这俩孩子就能重构树了,递归就是一个抽象、抽象、抽/(ㄒoㄒ)/~~象的过程!!!我们看中序遍历:左–>根–>右,咦,只要知道了根节点在哪,左孩子右孩子就在左右两侧,因此我们就可以通过中序遍历找出左右孩子原创 2021-09-02 14:54:11 · 175 阅读 · 0 评论 -
神奇的汉诺塔(图文解析)
汉诺塔游戏规则…三根神柱子,移动上面的大饼,规则每次只能移动一个饼,整个过程中大饼必须要在小饼的下面…三根神柱子取名:‘From’ ‘Help’ ‘To’… 千万别纠结这三根柱子的位置,只需要知道’From’是大饼们出发的那根神柱,‘To’是大饼们到达的那根神柱,但是大饼们需要通过借助另一根神柱才能到达,它就是’Help’!!!千万别纠结位置啊.大饼们开始出发…不纠结于细节,从宏观看步骤一:总共n个大饼,n=3,我们只要将上面n-1个小饼从From借助To移动到Help,然后…步骤二:将最原创 2021-07-21 15:23:46 · 1781 阅读 · 1 评论 -
剑指offer41——图文详解堆排序
堆数据结构以及堆的应用大根堆的维护大根堆插入元素堆排序大根堆的维护堆数据结构可以模拟成完全二叉树(每一层节点都是从左到右添加,这层满了才能添加下一层),堆又可以用一个数组来表示如下图(实际上底层就是个数组,树只是更直观地表达而已)这棵树有很好的性质:1:已知父节点下标为k,那么左孩子下标为2k,右孩子为2k+1(如果左右孩子都存在的情况下)2:已知子节点(左右孩子都一样)下标为i,那么父节点下标为(i/2),如果i/2=0那么该节点没有父节点。我们先说如何通过已有的数组维护成一个大根堆(小根堆原创 2021-08-29 14:07:47 · 212 阅读 · 0 评论