自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 在一个循环链表中,结点的值递增排序已经设计一个算法,在该循环链表中插入节点,保证插入节点之后的循环链表依旧是排序的。

【代码】在一个循环链表中,结点的值递增排序已经设计一个算法,在该循环链表中插入节点,保证插入节点之后的循环链表依旧是排序的。

2024-08-06 22:24:59 258

原创 在一个多级双向链表中,节点除了有两个指针分别指向前后两个节点,还有一个指针指向它的子链表,并且子链表也是一个双向链表,它的节点也有指向子链表的指针,请将这样的多级双向链表展开成普通的双向链表

一个复杂的多级双向链表结构,我们需要将其展开成一个普通的双向链表。下面使用cpp来解决这个问题,上面的是递归的算法,下面使用非递归的算法。

2024-08-06 22:17:33 332

原创 输入一个整数数组,数组中只有一个数字出现M次,其他数字都出现N次。请找出那个唯一的出现M次的数字。假设M不能被N整除。 使用cpp

【代码】输入一个整数数组,数组中只有一个数字出现M次,其他数字都出现N次。请找出那个唯一的出现M次的数字。假设M不能被N整除。使用cpp。

2024-08-05 21:23:26 107

原创 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能出现的概率

这个实现方法的时间复杂度是 O(n^2 * 6),其中 n 是骰子的数量。这比暴力枚举所有可能性(时间复杂度为 O(6^n))要高效得多。把n个骰子扔在地上,所有骰子朝上一面的点数之和为s,输入n,,打印出s的所有可能出现的概率。类,用于计算 n 个骰子点数和的所有可能概率。可以使用动态规划来解决这个问题,因为每个骰子的点数都依赖于之前骰子的结果。

2024-08-01 21:52:05 446

原创 用于生成并输出前 n 个丑数 cpp

换句话说,丑数是可以表示为 2a×3b×5c2^a \times 3^b \times 5^c2a×3b×5c 形式的数,其中 aaa、bbb 和 ccc 是非负整数。第一个丑数是 1(通常认为 1 是丑数)丑数(Ugly Numbers)是指其。下面的是python实现。下面的是用cpp实现。

2024-08-01 16:41:58 142

原创 计算从1到n的所有整数中数字1出现的次数 使用cpp

这个算法的时间复杂度是O(log n),因为我们只需要遍历数字的每一位。空间复杂度是O(log n),主要用于存储数字的字符串表示。

2024-07-31 15:55:54 144

原创 判断一个二叉树A是否有一个二叉树B作为子树 cpp回答

【代码】判断一个二叉树A是否有一个二叉树B作为子树 cpp回答。

2024-07-30 21:41:00 109

原创 cpp实现了一个正则表达式匹配算法,支持正则表达式中的基本字符和特殊字符 . 和 *。具体来说:.:匹配任意单个字符。*:匹配零个或多个前面的字符。

实现了一个正则表达式匹配算法,支持正则表达式中的基本字符和特殊字符和。

2024-07-30 17:05:52 290

原创 Git 中的工作区(Working Directory)、暂存区(Staging Area 或 Index)、提交区(Repository)

在 Git 中,工作区(Working Directory)、暂存区(Staging Area 或 Index)、提交区(Repository)是三个核心概念,它们分别代表不同的文件状态和存储位置。以下是它们的详细解释及其关联:1.

2024-07-27 19:50:56 795

原创 git学习

例如:git clone https://github.com/user/repo.git。6.git pull origin main:从远程仓库拉取并合并更改。1.git init :初始化一个新的Git仓库。2.git clone:克隆一个现有的Git仓库。3.git status:查看工作目录状态。5.git commit:提交暂存区的更改。4.git add:将文件添加到暂存区。例子:git add file.txt。例如:git branch。例子:git add .:保存工作目录的修改。

2024-07-27 19:42:31 449

原创 斐波那契数列(Fibonacci)数列 c++详解

Fibonacci数列是一个在数学和计算机科学中非常著名的数列。这个数列以其特殊的递推关系而闻名,也因其在自然界中的多次出现而引人注目。Fibonacci问题是学习递归、动态规划和算法优化的好例子。它看似简单,但涉及了很多重要的编程和数学概念。

2024-07-25 22:31:23 779

原创 给定二叉树和其中任意一个节点,找到在中序遍历中的下一个节点

在给定二叉树和其中一个节点的情况下,如果每个节点除了有指向左右子节点的指针,还有指向父节点的指针,我们可以很方便地找到在中序遍历中的下一个节点。

2024-07-25 21:45:37 276

原创 输入某二叉树的前序遍历和中序遍历的结果。请重建二叉树,假设输入的前序遍历和中序遍历的结果都不包含重复的数字

输入某二叉树的前序遍历和中序遍历的结果。请重建二叉树,假设输入的前序遍历和中序遍历的结果都不包含重复的数字使用c++解决。

2024-07-25 21:32:13 370

原创 pat 1012 数字分类

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。对给定的 N 个正整数,按题目要求计算 A1​~A5​ 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。若分类之后某一类不存在数字,则在相应位置输出。

2024-07-23 23:37:37 311

原创 单例模式学习cpp

现在我们要求定义一个表示总统的类型。presented可以从该类型继承出French present和American present的等类型。这些派生类型都只能产生一个实例为了设计一个表示总统的类型,并从该类型派生出只能产生一个实例的具体总统(如法国总统和美国总统),我们可以利用单例模式和继承来实现。President。

2024-07-23 16:25:30 437

原创 确保一个类只有一个实例的优点

举个例子,假设我们有一个日志记录器类。

2024-07-23 16:17:37 207

原创 剑指offer的面试题,赋值运算符函数

注意:这个实现假设 CMyString 的构造函数和析构函数已正确实现,特别是析构函数应该使用 delete[] 来释放 m_pData。你可能还想考虑实现移动赋值运算符(C++11及以后版本支持),以提高效率。如上为类型Cmystring的声明,请为该类型添加赋值运算符函数。

2024-07-23 16:16:32 303

原创 在剑指offer上看到的经典错误,以供大家学习

这是复制构造函数,但参数类型错误。正确的应该是A(const A& other){value=other.value;类型参数的普通构造函数。但是,它的实现是有问题的,因为。这个函数实际上不是一个复制构造函数。这才是真正的复制构造函数。

2024-07-23 15:54:52 158

原创 k最近邻算法

【代码】k最近邻算法。

2024-07-20 23:49:15 116

原创 Held-Karp算法的C++代码

Held-Karp算法是动态规划的一种应用,用于解决旅行商问题 (TSP)。该算法通过记录部分路径的最小成本来避免重复计算,从而有效地降低计算复杂度。Held-Karp算法使用一个状态压缩动态规划表。表示从起点出发,访问过所有由。表示的集合中的节点,并以节点。结束的最小路径长度。

2024-07-19 19:11:19 300

原创 集合覆盖问题的贪心算法,并输出所选择的子集

【代码】集合覆盖问题的贪心算法,并输出所选择的子集。

2024-07-17 21:47:13 387

原创 使用c++ 写一个2024年的日历

Zeller's congruence 是由德国数学家 Christian Zeller 在 19 世纪发明的一种计算任何公历日期对应星期几的算法。这个算法非常有用,因为它可以快速计算出任何日期是星期几,而不需要查表或进行复杂的迭代。注意:在这个公式中,一月和二月被当作前一年的 13 月和 14 月。上面的代码中最重要的是Zeller's congruence 算法。

2024-07-14 12:03:02 530

原创 详解一下马拉车算法 Manache算法 使用c++

Manacher算法的核心思想是利用已经计算出的回文信息来避免重复计算。通过维护当前最右的回文边界,算法可以在大多数情况下直接得到一个很好的初始回文半径.既计算了原字符串中对应的回文长度,又恰好表示了以该位置为中心的不同回文数量。这个巧妙的关系使得我们可以快速计算所有回文子串的数量,而不需要逐一枚举。最后让我详细解释一下为什么在预处理字符串中,每个回文长度对应原字符串中的。马拉车算法是寻找最长回文子串的高效算法,时间复杂度为O(n)2.变量有,回文半径组p,回文中心c,右边界r.

2024-07-14 11:05:58 471

原创 使用c++进行大规模的矩阵运算

算法通过分块矩阵乘法和多线程并行计算实现了大规模矩阵乘法的高效计算。这只是一个简略的算法,具体需要根据实际情况进行修改。

2024-07-06 22:01:52 333 1

原创 矩阵的乘法 c++

算法的思想就是将矩阵乘法问题分解为矩阵元素相乘的子问题。

2024-07-05 23:05:29 123

原创 快速幂学习 c++ LeetCode 372超级次方

是一个非常大的正整数且会以数组形式给出。使用了多种方法提升效率。

2024-07-05 22:34:06 218

原创 使用C++实现求职者和部门之间最大配对

某人力资源公司收到了m个合格的求职者的简历,要将他们分发给n个部门,每份简历符合一个或者几个部门的要求,但是每个人的简历最多送给k个部门,每个部门最多可以接受d份简历,如何实现求职者和部门之间的最大配对。使用了最大流算法来解决问题,其中将每份简历最多送给k个部门和每个部门最多接受d份简历的问题通过构建一个流网络来解决。我们使用Ford-Fulkerson算法来实现这个最大流问题的解决。

2024-07-05 16:36:14 193

原创 图论学习 c++Ford-Fulkerson 方法

Ford-Fulkerson算法是用于求解最大流问题的一种经典算法。其核心思想是通过不断寻找增广路径来增加流量,直到找不到增广路径为止。每次找到一条增广路径,就增加相应的流量,更新残余网络。简单来说就是Ford-Fulkerson算法的工作过程,即不断寻找增广路径并增加流量,直到无法找到增广路径为止。

2024-07-05 14:04:36 669

原创 做一个自动校正英文拼写错误的程序 使用c++

概述一个自动校正英文拼写错误的程序的基本的方法,并提供一个简化的C++实现。这个方法基于编辑距离(Levenshtein距离)和一个预定义的词典。

2024-07-04 23:14:46 349

原创 动态规划 剪绳子问题

当然可以使用更有效的解法,但是需要一点数学知识这个优化的算法基于一个数学发现:当绳子长度大于3时,尽可能多地切出长度为3的片段会得到最大乘积。如果最后剩下的长度为1,我们应该将其与一个3合并,形成一个长度为4的片段。给一段长度为n的绳子,请把绳子剪成m段,每段绳子的长度为k[0],k[1],k[2],k[3]....k[m].请问k[0]这个实现使用了动态规划的方法来解决问题。这个算法的时间复杂度为O(n^2),空间复杂度为O(n)。k[2].....*k[m]的最大乘积为多少。

2024-07-02 23:17:12 583

原创 机器人运动范围检测 c++

地上有一个m行n列的方格,一个机器人从坐标(0,0)的格子开始移动,它每次可以向上下左右移动一个格子,但不能进入行坐标和列坐标的位数之和大于k的格子,请问机器人能够到达多少个格子。这个算法的时间复杂度为O(mn),其中m和n分别是网格的行数和列数。空间复杂度也是O(mn),主要用于存储visited数组和BFS队列。这个实现使用了广度优先搜索(BFS)算法来解决问题。

2024-07-02 23:00:31 798

原创 使用c++ 解释

快速排序 c++ 个人感觉比较简单易懂,为每行都加上了注释。

2024-07-01 23:23:46 115

原创 实现singleton模式

设计一个类,我们只能生产该类的一个实例,使用c++演示。

2024-06-30 21:22:42 256

原创 赋值运算符函数 c++

的类,其中包含了构造函数、拷贝构造函数和析构函数。现在,让我们为该类型添加赋值运算符函数。赋值运算符函数的目的是允许将一个对象的值赋给另一个对象。在这里,我们需要重载。的对象可以通过赋值操作来复制另一个对象的值。这段代码定义了一个名为。

2024-06-30 19:20:55 325

原创 给定一点32位或者64位的二进制,如何有效的数出其中为1的数量 c++

【代码】给定一点32位或者64位的二进制,如何有效的数出其中为1的数量 c++

2024-06-29 23:43:43 115

原创 c++ 给定一个非常巨大的数组,如何找到它的中值

缺点是结果是近似值,不是精确的中位数。精确度可以通过增加桶的数量来提高,但会增加空间复杂度。基于分块的近似算法(适用于超大数据集)快速选择算法(最优解)

2024-06-29 23:32:16 397

原创 一个未排序的序列号里有n个元素,如何找到其中最大的k个元素 使用c++

使用简单的堆排序算法。

2024-06-29 23:25:22 77

原创 求一个集合里面的所有子集 使用c++

【代码】求一个集合里面的所有子集 使用c++

2024-06-29 22:41:43 406

原创 使用c++回旋打印二叉树的节点

这个算法的时间复杂度是 O(n),其中 n 是树中节点的数量,因为每个节点都被访问一次。空间复杂度也是 O(n),主要是由队列和存储每一层节点的向量所占用的空间决定的。设计一个算法来回旋打印二叉树的节点。这个算法的基本思想是使用层序遍历(广度优先搜索)来访问树的节点,但是在打印时交替改变方向。下面是用C++实现的代码。

2024-06-29 19:05:50 195

原创 使用c++设计一个计算器

使用c++设计一个简单的计算器,它支持不带括号的四则运算,计算器要满足先乘除后加减的规则。这个计算器能够正确处理不带括号的四则运算,并且遵循先乘除后加减的规则。

2024-06-29 16:38:16 863 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除