算法7
文章平均质量分 59
liuhuangdi
西南油专的学生,欢迎评论交流,大家一起进步
展开
-
解数独解数独
编写一个函数,用于解决数独问题。给定一个9x9的数独,要求填入数字使得每一行、每一列和每一个以粗实线分隔的3x3宫内的数字均不重复。原创 2024-05-01 12:47:28 · 3 阅读 · 0 评论 -
找到第K个缺失的正整数
i++) {k++;return k;原创 2024-04-23 01:03:21 · 628 阅读 · 0 评论 -
KMP算法-在文本串中查找模式串的起始位置
else if (j > 0) { // 字符失配,根据next跳过子串前面的一些字符。if (string[i] == patt[j]) { // 字符匹配,指针后移。if (j == patt.size()) { // 匹配成功。else { // 子串第一个字符就失配。int i = 0;int j = 0;return -1;原创 2024-04-22 12:51:23 · 328 阅读 · 0 评论 -
图算法:Ford-Fulkerson算法:来求解从源点到汇点的最大流问题
/ 如果能够到达汇点,则返回true。// 使用Ford-Fulkerson算法求解最大流。// 初始化邻接矩阵,这里直接使用示例图。#define V 6 // 图中的顶点数。// 将图复制到残余图。// 使用BFS寻找增广路径。// 使用邻接矩阵表示图。原创 2024-04-22 11:38:22 · 296 阅读 · 0 评论 -
图的着色:给定一个图,要求为图中的节点进行着色,使得相邻的节点颜色不同,并且最小化所需的颜色数目
/ 如果相邻节点已经被着色,则将其颜色加入已使用颜色集合。// 存储相邻节点已经被使用的颜色。// 寻找可用的最小颜色。// 为当前节点着色。// 从第一个节点开始遍历。// 返回所需的最小颜色数。// 存储每个节点的颜色。// 贪心算法着色函数。原创 2024-04-22 00:40:52 · 349 阅读 · 0 评论 -
判断二分图:涂两种颜色,需要每一层结点的颜色一样,相邻层的相反
/ 用于记录节点的颜色,初始值设为 -1,表示未染色。给定一个图,要求判断它是否是一个二分图,即图中的节点可以划分为两个不相交的集合,使得每条边连接的两个节点分属于不同的集合。// 如果邻居节点已经被染色,并且颜色与当前节点相同,则不是二分图。// 将起始节点染色为颜色 0。// 如果邻居节点未被染色,则染色并入队。// 遍历当前节点的所有邻居节点。// 如果所有节点都被染色且满足条件,则是二分图。// 遍历所有节点,处理非连通图的情况。// 判断图是否为二分图。// 定义图的数据结构。原创 2024-04-22 00:01:30 · 338 阅读 · 0 评论 -
/*数组中的第 K 个最大元素: 找到未排序整数数组中的第 k 个最大元素。例如,给定数组 [3,2,1,5,6,4] 和 k = 2,返回 5。*/
/ 从第 k+1 个元素开始,与堆顶比较,若大于堆顶,则弹出堆顶,插入当前元素。// 返回堆顶元素即为第 k 大的元素。// 将前 k 个元素插入小根堆。原创 2024-04-21 23:34:24 · 372 阅读 · 0 评论 -
动态规划16--不同的二叉搜索树:给定一个整数 n,求生成所有由 1 ... n 为节点所组成的二叉搜索树个数。(参考代码随想录的视频)
给定一个整数 n,求生成所有由 1 ... n 为节点所组成的二叉搜索树个数。// dp[i] 表示节点数为 i 时的二叉搜索树个数。// dp[j - 1] 表示左子树的个数,dp[i - j] 表示右子树的个数。// 计算节点数为 i 时的二叉搜索树个数。原创 2024-04-20 22:23:31 · 257 阅读 · 1 评论 -
二叉树的最近公共祖先:给定一个二叉树,找到该树中两个指定节点的最近公共祖先。
给定一个二叉树,找到该树中两个指定节点的最近公共祖先。// 包含 LONG_MIN 和 LONG_MAX。原创 2024-04-20 21:03:27 · 175 阅读 · 0 评论 -
二叉树的直径:给定一棵二叉树,你需要计算它的直径长度。二叉树的直径长度是任意两个结点路径长度中的最大值。
给定一棵二叉树,你需要计算它的直径长度。二叉树的直径长度是任意两个结点路径长度中的最大值。// 包含 LONG_MIN 和 LONG_MAX。原创 2024-04-20 18:34:24 · 325 阅读 · 0 评论 -
对称二叉树:给定一个二叉树,检查它是否是镜像对称的。
/ 递归检查左节点的左子树和右节点的右子树,以及左节点的右子树和右节点的左子树是否对称。// 如果左右节点有一个为空,或者它们的值不相等,则返回 false。// 调用 isSymmetric 函数检查左子树和右子树是否对称。// 包含 LONG_MIN 和 LONG_MAX。// 如果左右节点都为空,则返回 true。// 如果根节点为空,则返回 true。给定一个二叉树,检查它是否是镜像对称的。原创 2024-04-20 17:15:33 · 298 阅读 · 0 评论