-
图的逻辑结构和具体实现一幅图是由节点和边构成的,逻辑结构如下:
什么叫「逻辑结构」?就是说为了方便研究,我们把图抽象成这个样子。
根据这个逻辑结构,我们可以认为每个节点的实现如下:
12345/* 图节点的逻辑结构 */class Vertex &...
-
介绍
滑动窗口算法可以将嵌套的循环问题,转换为单循环问题,降低时间复杂度。(循环嵌套-> 单循环问题)
算法的大致逻辑12345678910111213int left = 0, right = 0;while (right < s....
-
框架思想
DFS 的本质就是回溯算法
BFS的核心是队列
BFS 的核心思想应该不难理解的,就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用「队列」这种数据结构,每次将一个节点周围的所有节点加入队列。
...
-
回溯框架知识其实回溯算法其实就是我们常说的 DFS 算法,本质上就是一种暴力穷举算法。
废话不多说,直接上回溯算法框架。解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:
1、路径:也就是已经做出的选择。
2、选择列表:也就...
-
动态规划框架思想首先,动态规划问题的一般形式就是求最值。
比如说让你求最长递增子序列呀,最小编辑距离呀等等。
核心问题是:求解动态规划的核心问题是穷举。
动态规划三大要素
存在「重叠子问题」,如果暴力穷举的话效率会极其低下,所以需要「备忘录」或者...
-
MySQL 知识图谱
Join 连接大全
175. Combine Two Tables12345678910Table: Person+-------------+---------+| Column Name | Type |+------...
-
一、BST 特性1、对于 BST 的每一个节点 node,左子树节点的值都比 node 的值要小,右子树节点的值都比 node 的值大。
2、对于 BST 的每一个节点 node,它的左侧子树和右侧子树都是 BST。
二叉搜索树并不算复杂,但我觉得它...
-
一、二叉树的重要性举个例子,比如说我们的经典算法「快速排序」和「归并排序」,对于这两个算法,你有什么理解?如果你告诉我,快速排序就是个二叉树的前序遍历,归并排序就是个二叉树的后序遍历,那么我就知道你是个算法高手了。
为什么快速排序和归并排序能和二叉树...
-
介绍
排序原理:
比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。
对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。
数组的简单实现1234567891011121314...
-
介绍插入排序(Insertion sort)是一种简单直观且稳定的排序算法。
插入排序的工作方式非常像人们排序一手扑克牌一样。开始时,我们的左手为空并且桌子上的牌面朝下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确...