《蛤蟆先生去看心理医生》关于本书核心内容书摘 看本书之前本来是想看下《也许你该找个人聊聊》,看推荐介绍有提到《蛤蟆先生去看心理医生》,五一假期便抽空看完了本书。 关于本书 作...
2.2 2.3 里面的循环可用 HashMap 构建 memo 进行优化,从而无需使用循环。
Algorithm小白入门 -- 二叉树二叉树二叉树构造二叉树寻找重复子树 1. 二叉树 基本二叉树节点如下: 很多经典算法,比如回溯、动态规划、分治算法等都是树的问题,而树的问题就离不开树的递归遍历框架: 举个例...
单链表十大经典排序算法冒泡排序选择排序插入排序归并排序快速排序堆排序计数排序桶排序 1. 十大经典排序算法 十大经典排序算法对比如下: 稳定性的定义排序后 2 个相等键值的顺...
广度优先算法广度优先算法框架广度优先算法运用 1. 广度优先算法框架 DFS(Deep First Search)深度优先搜索,跟之前介绍的回溯算法没啥差。 BFS(Brea...
滑动窗口算法回溯算法框架回溯算法运用 1. 回溯算法框架 回溯算法,是类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝...
经典动态规划背包问题最长子序列问题 1. 背包问题 1.1 0-1 背包问题 0-1 背包问题,描述如下: 上面是一个典型的动态规划问题,物品不可以分割,要么装进包里,要么...
动态规划动态规划的基本原理动态规划的运用 1. 动态规划的基本原理 动态规划(Dynamic Programming,简称 DP),是运筹学的一个分支,是求解决策过程最优化...
滑动窗口算法滑动窗口框架滑动窗口运用 1. 滑动窗口框架 滑动窗口算法,核心思路是维护一个窗口,不断滑动,然后更新答案。大致逻辑如下: 上面时间复杂度是 O(N),算法思路比...
LRU 与 LFU 算法LRU 算法LFU 算法 1. LRU 算法 LRU 算法是一种缓存淘汰策略,是 Least Recently Used 的缩写,也就是认为最近使用过...
Union Find 算法Union Find 算法介绍Union Find 算法应用 1. Union Find 算法介绍 Union Find 算法,也就是常说的并查集算...
二分搜索二分搜索模板二分搜索运用 1. 二分搜索模板 二分搜索(二分查找)也称折半查找(Binary Search),是一种效率较高的查找方法。但是,折半查找要求线性表必须采...
二叉搜索树二叉搜索树 BSTBST 的基本操作计算合法的 BST 1. 二叉搜索树 BST 二叉搜索树(Binary Search Tree),简写 BST,其特性如下: 对...
二叉树二叉树构造二叉树寻找重复子树 1. 二叉树 基本二叉树节点如下: 很多经典算法,比如回溯、动态规划、分治算法等都是树的问题,而树的问题就离不开树的递归遍历框架: 举个例...
队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构,栈是一种先进后出的数据结构。 1.1 用栈实现队列 队列的...
数组双指针技巧数组删除、去重 1. 双指针技巧 1.1 快慢指针 快慢指针一般都初始化指向链表的头结点head,前进时快指针fast在前,慢指针slow在后,巧妙解决一些链表...
单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表 值得注意的是: 递归函数要有 base case 当链表递...
ANR(App Not Responding)基本上99%的App都有,即使是系统,也有system_anr,我相信虽然ANR问题这样的普遍,还是有很多人对ANR问题即熟悉又...
Jetpack - Hilt依赖注入、依赖注入框架Android 常用的依赖注入框架Hilt 的简单使用 1. 依赖注入、依赖注入框架 1.1 依赖注入 依赖注入的英文名是 ...