![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
南桥几经秋
这个作者很懒,什么都没留下…
展开
-
递归与动态规划
1、动态规划语雀算法知识链接基本思想:动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。练习:参考链接题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法1、第一步先找这个函数与下一个函数之间的关系原创 2020-09-15 10:46:03 · 210 阅读 · 0 评论 -
生成窗口最大值数组
1、题目参考书:程序员代码面试指南 IT名企算法与数据结构题目最优解2、解答原创 2020-08-24 21:56:45 · 119 阅读 · 0 评论 -
汉诺塔
1、汉诺塔问题汉诺塔问题是一个经典的问题,把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?如果是初次接触类似的问题,乍看之下肯定会感觉无从下手。要把64个圆盘从a柱子移动到c柱子上,第一步应该怎么做?虽然可以肯定,第一步唯一的选择是移动a最上面的那个圆盘,但是应该将其移到b还是c呢?很难确定。因为接下来的第二步、第三步……直到最后一步,看起来都是很难确定的。能立即确定的是最后一步:最后一步的盘子肯定原创 2020-08-22 22:14:21 · 207 阅读 · 0 评论 -
跳跃表
1. 跳跃表的原理学过数据结构的都知道,在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。如上图,我们要查询元素为55的结点,只需要在L2层查找4次即可。在这个结构中,查询结点为46的元素将耗费最多的查询次数5次。即先在L2查询46,查询4次后找到元转载 2020-07-20 18:22:30 · 188 阅读 · 0 评论