算法空间

来自康健生活
跳转到导航 跳转到搜索

返回上一级

剑指 offer

剑指 offer 这本书买回来也有七八年了,但实际上一直没有看过,偶尔会拜读一下 心谭 的博客,每次阅读都所获颇丰。第一次开始大量阅读 leetcode 代码是在 2021 年,彼时所在团队动荡,作为面试官我是整个团队唯一一个考察面试者算法能力的,通常我会在面试的前几天遴选 5 道题然后背诵各种解法以备面试者提问(通常我会背诵到后半夜,大概算得上是一个负责任的面试官了),就这样断断续续了小半年时间。

因为自身原因我选择训练的方式是心流,反复映射理解方式不去过度背诵(具体场景例外,比如面试、考试),实际上这是不是办法的办法,我没有太长期的记忆,而且有一定的认知缺陷。通过心流训练,通过强理解力可以在需要时阅读资料快速的回忆起知识点,举个例子双精度浮点数 全文断断续续写了好几天,知识点也只有大学本科的普通难度,但是每次会看都没有印象,这个时候只要专注阅读一边后,大致就可以找回大部分理解了。这种强化理解力的能力帮助在高考的时候差几分就拿到了数学满分(没有满分是一辈子的遗憾,而且无法再弥补)。

数据结构

线性数据结构 数组 链表 队列 哈希表
非线性结构 哈希表
树状结构 哈希表
网状结构
数据结构 逻辑结构 物理结构
基础数据类型
数字编码 字符编码
数组与链表 连续与分散存储方式
两者操作方式与优缺点
基于动态数组实现列表
计算机内存与缓存
栈与队列 先入后出 先入先出 双向队列
基于链表和数组实现
哈希表 哈希表工作原理 基于数组实现
哈希冲突 链式地址 开放寻址
哈希算法的用途与实现
完美二叉树 完全二叉树 完满二叉树 平衡二叉树
链表表示 数组表示
层序遍历 前序遍历 中序遍历 后序遍历
二叉搜索树
AVL树
小顶堆 大顶堆 优先队列
基于数组实现 建堆实现
Top-k
有向图 连通图 有权图
邻接矩阵 邻接表
广度优先遍历 深度优先遍历

复杂度分析

迭代与递归 for循环 while循环 嵌套循环
递归调用栈 尾递归 递归树
迭代与递归区别
时间复杂度 函数渐近上界
推算方法 常见类型
最差时间复杂度 最佳时间复杂度 平均时间复杂度
空间复杂度 推算方法 常见类型
时间与空间权衡

算法

搜索 暴力搜索 线性搜索 广度与深度优先搜索
高效搜索 二分查找 哈希查找 树查找
排序 就地性 稳定性 自适应性
遍历 选择排序 冒泡排序 插入排序
分治 快速排序 归并排序 堆排序
非比较 桶排序 计数排序 基数排序
分治 分治特性
回溯 回溯特性
动态规划 暴力搜索 记忆化搜索 递推
重叠子问题 最优子问题 无后效性
贪心 贪心特性

Leetcode

Leetcode

通识

魔法数 示例 示例
示例 示例 示例
示例 示例 示例

算法空间

常用

位图(BitMap) 示例 示例
示例 示例 示例
示例 示例 示例