最大子数组和(Maximum Subarray Sum)问题是求一个数组中的最大子数组和。 我们可以使用动态规… 继续阅读 如何实现最大子数组和算法?
分类: 算法之美
如何实现最长上升子序列算法?
最长上升子序列(Longest Increasing Subsequence, LIS)问题是求一个序列中的最… 继续阅读 如何实现最长上升子序列算法?
如何实现Prim最小生成树算法?
Prim 算法是一种用于寻找权重最小的生成树的算法。它会从某个节点开始,逐步添加与该节点直接相连且权值最小的节… 继续阅读 如何实现Prim最小生成树算法?
如何实现Kruskal最小生成树算法?
Kruskal 算法也是一种得到最小生成树的算法。它会从所有边中选取权重最小的边,若该边的两个节点不在同一个连… 继续阅读 如何实现Kruskal最小生成树算法?
如何实现拓扑排序算法?
拓扑排序是对有向无环图(DAG)中节点的一种排序方式。它将DAG中节点排成一个线性序列,使得如果存在一条从节点… 继续阅读 如何实现拓扑排序算法?
如何实现最小生成树算法?
最小生成树是连接图中所有节点的最小权重的树。常用的算法有 Prim 算法和 Kruskal 算法。 我们可以使… 继续阅读 如何实现最小生成树算法?
如何实现二叉树的遍历算法?
二叉树的遍历是非常常见和重要的操作。主要有前序遍历、中序遍历和后序遍历三种方式。 我们可以使用递归方式实现二叉… 继续阅读 如何实现二叉树的遍历算法?
如何判断一个二叉树是否为平衡二叉树?
平衡二叉树的定义是:它是一个空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树… 继续阅读 如何判断一个二叉树是否为平衡二叉树?
如何实现Floyd最短路径算法?
Floyd 算法是一种找到图中所有节点之间的最短路径的算法。我们可以使用邻接矩阵实现 Floyd 算法: Fl… 继续阅读 如何实现Floyd最短路径算法?
如何实现Bellman-Ford最短路径算法?
Bellman-Ford 算法也是一种找到图中所有节点到某个节点的最短路径的算法。我们可以使用邻接表实现 Be… 继续阅读 如何实现Bellman-Ford最短路径算法?
如何实现Dijkstra最短路径算法?
Dijkstra 算法是一种找到图中所有节点到某个节点的最短路径的算法。 我们可以使用邻接矩阵实现 Dijks… 继续阅读 如何实现Dijkstra最短路径算法?
如何求出一个无序数组中第K小的数?
要在一个无序数组中找到第 K 小的数,可以使用快速选择算法(Quickselect)。 算法流程: 将数组下标… 继续阅读 如何求出一个无序数组中第K小的数?
如何实现字符串匹配算法?
字符串匹配算法是在一个文本字符串中查找与给定模式字符串匹配的第一个位置。常见的算法有: 暴力匹配: 时间复杂度… 继续阅读 如何实现字符串匹配算法?
如何求出一个数的平方根?
要计算一个数的平方根,我们可以使用以下几种方法: 开方运算: 牛顿迭代法: 二分查找: 示例: 所以,求平方根… 继续阅读 如何求出一个数的平方根?
如何判断一个单链表是否有环?
要判断一个单链表是否有环,可以使用快慢指针算法。 算法流程: 先判断链表是否为空或只有一个节点,如果是则返回 … 继续阅读 如何判断一个单链表是否有环?
如何计算一个数的阶乘?
要计算一个数的阶乘(factorial),可以使用以下算法: 阶乘算法 阶乘表示为:n! n 的阶乘是 n x… 继续阅读 如何计算一个数的阶乘?
如何求出两个数的最大公约数和最小公倍数?
两个数的最大公约数(Greatest Common Divisor, GCD)是两个数共有的最大正整数因子。两… 继续阅读 如何求出两个数的最大公约数和最小公倍数?
如何判断一个数是否为质数?
一个质数(Prime number)是大于1的自然数,只能被1和自身整除的数。 要判断一个数是否为质数,可以使… 继续阅读 如何判断一个数是否为质数?
如何判断两个字符串是否为变位词?
我们要解题,先要了解什么是“变位词”,一种把某个词或句子的字母的位置(顺序)加以改换所形成的新词。 例如:sa… 继续阅读 如何判断两个字符串是否为变位词?
怎样实现二分查找算法
例题:假设有一个已经排序的整数数组nums和一个目标值target,请问是否存在一个数在nums中等于targ… 继续阅读 怎样实现二分查找算法