自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 把二叉搜索树转换为累加树(二)

首先我们判断当前访问的节点是否存在,如果存在就递归右子树,递归回来的时候更新总和和当前点的值,然后递归左子树。如果我们分别正确地递归 root.right 和root.left ,那么我们就能正确地用大于某个节点的值去更新此节点,然后才遍历比它小的值。除去递归调用以外,convertBST 做的工作是常数时间的,所以线性次调用 convertBST 的运行时间是线性时间的。解法的关键在于应该按照节点值降序遍历所有节点,同时记录我们已经遍历过的节点值的和,并把这个和加到当前节点的值中。空间复杂度:O(n)

2026-01-04 08:26:54 312

原创 把二叉搜索树转换为累加树(一)

(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。我们留下一定的时间给大家思考,下篇文章小编将与大家分享解决方案。当然,方法可能不止一种,大家可以开动脑筋,找寻自己的解题思路哦~

2026-01-03 18:10:06 279

原创 经典算法题型之排序算法(四)

但优化后的冒泡排序平均时间复杂度仍然是 O(n^2),所以这些优化对算法的性能并没有质的提升。​不管怎么说,冒泡排序法是所有排序算法的老祖宗,如同程序界经典的 “Hello, world” 一般经久不衰,总是出现在各类算法书刊的首个章节。它的空间复杂度为 O(1),时间复杂度为 O(n^2),第二种、第三种冒泡排序由于经过优化,最好的情况下只需要 O(n) 的时间复杂度。因为后面的所有元素都没有发生过交换,必然已经有序了。最好情况:在数组已经有序的情况下,只需遍历一次,由于没有发生交换,排序结束。

2025-12-31 08:51:12 253

原创 经典算法题型之排序算法(三)

最外层的 for 循环每经过一轮,剩余数字中的最大值仍然是被移动到当前轮次的最后一位。这种写法相对于第一种写法的优点是:如果一轮比较中没有发生过交换,则立即停止排序,因为此时剩余数字一定已经有序了。

2025-12-31 08:26:58 295

原创 经典算法题型之排序算法(二)

其中,我们在交换两个数字时使用了一个小魔术:没有引入第三个中间变量就完成了两个数字的交换。这个交换问题曾经出现在大厂面试题中,感兴趣的读者可以细品一下。最外层的 for 循环每经过一轮,剩余数字中的最大值就会被移动到当前轮次的最后一位,中途也会有一些相邻的数字经过交换变得有序。总共比较次数是(n-1)+(n-2)+(n-3)+…这种写法相当于相邻的数字两两比较,并且规定:“谁大谁站右边”。经过 n-1 轮,数字就从小到大排序完成了。整个过程看起来就像一个个气泡不断上浮,这也是“冒泡排序法”名字的由来。

2025-12-29 18:25:08 123

原创 经典算法题型之排序算法(一)

是一类非常经典的算法,说来简单,说难也难。刚学编程时大家都爱用冒泡排序,随后接触到选择排序、插入排序等,历史上还有昙花一现的希尔排序,公司面试时也经常会问到快速排序等等,小小的排序算法,融入了无数程序大牛的心血。如牛顿所言,正是站在巨人的肩膀上,我们才能望得更远。本文我们就来一起梳理一下排序算法的前世今生。冒泡排序是入门级的算法,但也有一些有趣的玩法。

2025-12-29 12:51:16 263

原创 经典算法题型之扫雷游戏(三)

同样地,我们也可以将深度优先搜索改为广度优先搜索来模拟,我们只要在 cnt 为零的时候,将当前点相邻的未挖出的方块加入广度优先搜索的队列里即可,其他情况不加入队列,这里不再赘述。

2025-12-27 08:30:00 187

原创 经典算法题型之扫雷游戏(二)

由于题目要求你根据规则来展示执行一次点击操作后游戏面板的变化,所以我们只要明确该扫雷游戏的规则,并用代码模拟出来即可。方法一:深度优先搜索 + 模拟。

2025-12-26 21:36:09 136

原创 经典算法题型之扫雷游戏(一)

' 代表没有相邻(上,下,左,右,和所有4 个对角线)地雷的。('1' 到 '8')表示有多少地雷与这块。给定一个代表游戏板的二维字符矩阵。让我们一起来玩扫雷游戏!

2025-12-26 08:08:54 251

原创 统计分析 | Minitab软件官方正式版详细下载教程

它提供从基础到高级的统计工具,包括假设检验(如t检验、卡方检验)、回归分析(线性和非线性)、方差分析(单因子至多元方差分析)、时间序列分析以及多变量分析等;数据可视化方面支持散点图、直方图、箱线图、帕累托图、运行图等数十种图表类型,便于直观探索数据关系;在质量管理领域,其模块涵盖统计过程控制(SPC)、实验设计(DOE,如全因子和响应曲面设计)、测量系统分析(MSA)和可靠性分析,帮助识别过程变异根源并优化流程。‌。

2025-12-24 21:51:13 1150

原创 统计发现 | JMP Pro软件官方正式版详细下载教程

‌预测建模与机器学习‌:提供决策树、Bootstrap森林法、朴素贝叶斯、神经网络等算法,并通过交叉验证和数据划分工具防止过拟合,提升模型泛化能力;‌模型管理与自动化‌:支持存储、对比和生成评分代码,便于模型部署至SAS等系统;‌高级统计工具‌:涵盖生存分析、实验设计(DOE)、广义回归、混合模型等,适用于复杂数据场景如文本挖掘和可靠性分析。

2025-12-24 17:01:18 1682

原创 经典算法题型之复数乘法(二)

然后,将提取的部分转换为整数后,根据需要将实部和虚部相乘。然后,我们再次以所需的格式形成返回字符串,并返回结果。

2025-12-23 21:32:52 251

原创 经典算法题型之复数乘法(一)

返回表示它们乘积的字符串。注意,根据定义 i 的平方=−1。给定两个表示复数的字符串。

2025-12-23 21:27:41 304

原创 经典算法题型之俄罗斯套娃信封问题(二)

由此我们将本问题转化成了基础的 LIS 问题,具体代码如下所示。

2025-12-20 20:09:27 217

原创 经典算法题型之俄罗斯套娃信封问题(一)

给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。

2025-12-20 20:02:01 280

原创 经典算法题型之打家劫舍(二)

首先我们简要概括一下题意,即不能同时偷窃相邻两间房屋,求偷窃的最大金额。

2025-12-19 17:33:19 204

原创 经典算法题型之打家劫舍(一)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你「不触动警报装置的情况下」,一夜之内能够偷窃到的最高金额。

2025-12-19 17:28:31 231

原创 最长公共子序列(LCS)

例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。一个字符串的「子序列」是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。若这两个字符串没有公共子序列,则返回 0。

2025-12-17 20:06:28 229

原创 验证IP地址(四)

IPv4 和 IPv6 地址均是由特定的分界符隔开的字符串组成,并且每个子字符串具有相同格式。仅当每个块都有效时,该地址才有效。因此,可以将地址分为多个块,然后逐块进行验证。

2025-12-17 08:05:41 306

原创 钢结构设计 | Tekla 2024中文正式版下载教程指南

三维智能建模‌:用户可在虚拟空间中搭建包含几何尺寸、材料、节点细节等完整信息的三维模型,支持多视角检视和碰撞检测,优化设计精度;‌自动化输出‌:内置600余种预设节点库,支持参数化装配与联动调整,能自动生成构件详图、零件图、材料清单、钢筋弯曲表等,并直接对接数控切割设备,实现加工自动化;‌适用场景‌:广泛应用于体育场馆、高层建筑、桥梁、钻井平台等复杂钢结构工程。

2025-12-16 08:37:32 1651

原创 验证IP地址(三)

现在问题被简化为检查每个块是否正确,每个块的范围为 (0, 255),且不允许有前置零出现。构造适用该题目的 “IPv4” 地址的正则表达式。注意前面讨论的前置零问题,它不属于 IPv4 地址。使用相同逻辑构造匹配 IPv6 地址的正则表达式。创建包含这 5 种情况的正则表达式。

2025-12-15 19:23:02 266

原创 验证IP地址(二)

检查该地址是否有效可以在控制台运行命令 ping 01.01.01.012,八进制地址 01.01.01.012 会被转换为对应的十进制地址 1.1.1.10,因此执行 ping 命令不会出错。使用 try/catch 不是一种好的方式,因为 try 块中的代码不会被编译器优化,所以最好不要在面试中使用。最直接的方法是使用内置函数和 try/catch 结构检查 IP 地址的正确性:在 Python 中使用 ipaddress,在 Java 中使用 InetAddress。分治法,效率最高的方法之一;

2025-12-15 08:31:12 220

原创 验证IP地址(一)

的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。在 nums2 中对应位置的右边的第一个比。如果不存在,对应位置输出 -1。的下一个更大元素是指。

2025-12-14 18:55:46 183

原创 经典算法题详解之统计重复个数(三)

我们在每次遍历至 s1 的末尾时根据当前匹配到的 s2 中的位置 index 查看哈希表中的对应位置,如果哈希表中对应的位置 index 已经存储元素,则说明我们找到了循环节。我们设计一个哈希表 recall:哈希表 recall 以 s2 字符串的下标 index 为索引,存储匹配至第 s1cnt 个 s1 的末尾,当前匹配到第 s2cnt 个 s2 中的第 index 个字符时, 已经匹配过的 s1 的个数 s1cnt 和 s2 的个数 s2cnt。

2025-12-14 15:33:10 164

原创 经典算法题详解之统计重复个数(二)

当我们找出循环节后,我们即可知道一个循环节内包含 s1 的数量,以及在循环节出现前的 s1 的数量,这样就可以在 O(1) 的时间内,通过简单的运算求出 s2 在 S1 中出现的次数了。那么回到这题,我们可以将不断循环的 s2 组成的字符串类比作上面小数部分,去找是否存在一个子串,即「循环节」,满足不断在 S2 中循环,且这个循环节能对应固定数量的 s1。如下图所示,在第一次出现后,S2 的子串 bdadc 构成一个循环节:之后 bdadc 的每次出现都需要有相应的两段 s1。

2025-12-13 09:40:53 313

原创 经典算法题详解之统计重复个数(一)

现在给你两个非空字符串 s1 和 s2(每个最多 100 个字符长)和两个整数 0 ≤ n1 ≤ 和 1 ≤ n2 ≤。现在考虑字符串 S1 和 S2,其中 S1=[s1,n1] 、S2=[s2,n2]。如果我们可以从 s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,"abc" 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n]。

2025-12-13 09:12:40 221

原创 经典算法题详解之游乐园的迷宫(三)

我们保持一个理想的状态:转向时,剩余的点都位于要求方向的一侧(即剩余点都符合当前这次的转向要求)。那么当前这次转向选择什么点,可以使下一次转向依旧满足这个理想的状态,从而可以不断的递归找下去。若下一次转向的要求方向是 L (R),则这次转向的点中选择相对方向最右(最左)的点即可。平面上有 个点,找到一条访问 个点的路径,使得路径的转角满足给定的转角序列。

2025-12-12 13:54:28 257

原创 经典算法题详解之游乐园的迷宫(二)

解释:[0,2,1,3] 是符合"LL"的方案之一。在 [0,2,1,3] 方案中,0->2->1 是左转方向, 2->1->3 也是左转方向。解释:[0,3,1,2] 是符合"LR"的方案之一。在 [0,3,1,2] 方案中,0->3->1 是左转方向, 3->1->2 是右转方向。:输入:points = [[1,3],[2,4],[3,3],[2,1]], direction = "LR"输入:points = [[1,1],[1,4],[3,2],[2,1]], direction = "LL"

2025-12-11 17:34:03 270

原创 经典算法题详解之游乐园的迷宫(一)

有一个二维平面地图,其中散布着 N 个推销点,编号 0 到 N-1,不存在三点共线的情况。游戏没有规定起点和终点,但限定了每次转角的方向。首先,小王需要先选择两个点分别作为起点和终点,然后从起点开始访问剩余 N-2 个点恰好一次并回到终点。访问的顺序需要满足一串给定的长度为 N-2 由 L 和 R 组成的字符串 direction,表示从起点出发之后在每个顶点上转角的方向。根据这个提示,小王希望你能够帮她找到一个可行的遍历顺序,输出顺序下标(若有多个方案,输出任意一种)。(上图:A->B->C 右转;

2025-12-11 12:43:29 241

原创 经典算法题详解之切分数组(二)

将数组切分成若干个子数组,使得每个子数组最左边和最右边数字的最大公约数大于 1,求解最少能切成多少个子数组。其含义为当前这个数要么跟之前的某个数组成一个子数组,要么单独成一组。这样遍历下去就能高效求得答案了。

2025-12-10 15:31:48 196

原创 经典算法题详解之切分数组(一)

给定一个整数数组 nums,小李想将 nums 切割成若干个非空子数组,使得每个子数组最左边的数和最右边的数的最大公约数大于 1。为了减少他的工作量,请求出最少可以切成多少个子数组。解释:最优切割为 [2,3,3,2] 和 [3,3]。第一个子数组头尾数字的最大公约数为 2 ,第二个子数组头尾数字的最大公约数为 3。解释:只有一种可行的切割:[2], [3], [5], [7]输入:nums = [2,3,3,2,3,3]输入:nums = [2,3,5,7]

2025-12-10 11:32:27 164

原创 三维建模工具 | Revit软件官方正式版详细下载步骤

如大家所熟悉的,是一款功能强大且应用较为广泛的建筑信息模型(BIM)软件工具,常应用于建筑设计、结构工程、机电安装等领域。‌它通过参数化建模技术构建三维模型,支持建筑全生命周期的管理,从概念设计到施工文档、运维阶段都能提供一体化解决方案。‌目前比较常用的版本有Revit 2018和Revit 2025中文版,深受使用者的青睐。

2025-12-09 17:55:21 1704

原创 3D可视化工具 | Lumion 12中文正式版下载教程指南

如大家所熟悉的,Lumion是一款功能强大且应用较为广泛的实时3D可视化工具,主要用于建筑、规划、景观设计等领域的高质量图像和视频渲染。‌它能够将3D模型快速转化为逼真的静帧图像或动态影片,帮助用户高效呈现设计概念。‌目前比较常用的版本有Lumion 8.5和Lumion 12中文版,深受使用者的青睐。

2025-12-09 08:57:41 1815

原创 期望个数统计(二)

经过分析,我们发现不同能力值的简历是不会互相影响的,所以问题可以简化为有一个长度为n的数组,将里面的元素按照全排列随机排序后,问有多少个元素还在原位。对于一个排好序的序列,对相同的数字随机打乱顺序后期望有多少个数字保持原位置不变。

2025-12-08 20:34:37 186

原创 期望个数统计(一)

小 A 和小 B 负责审核面试者,他们均有所有面试者的简历,并且将各自根据面试者能力值从大到小的顺序浏览。由于简历事先被打乱过,能力值相同的简历的出现顺序是从它们的全排列中。每名面试者都会提交一份简历,公司会根据提供的简历资料产生一个预估的能力值,数值越大代表越有可能通过面试。由于他们的能力值都是 1,小 A 和小 B 的浏览顺序都为从全排列。解释:由于面试者能力值互不相同,小 A 和小 B 的浏览顺序一定是相同的。代表小 A 和小 B 的浏览顺序中出现在同一位置的简历数,求。之间,期望计算公式可以是。

2025-12-08 19:33:50 311

原创 遗传算法的认识与运算过程

变异是指随机替换个体的部分结构,每个个体是否变异是根据提前设置的个体变异概率决定的,变异可以保证个体的多样性,防止出现“早熟”收敛的情况;GA 借鉴于“适者生存”的理论,在求解优化问题时,通过可行解的一代代交叉、变异,不断进化,最终得到最适应环境的个体,从而模拟出问题的近似最优解。终止条件判断:当进化次数达到初始时设定的最大进化次数时,以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。个体评价、选择:通过计算群体 P(t) 中各个个体的适应度,选择出适应环境的新一代个体 P(t+1);

2025-12-07 19:38:40 227

原创 浅谈:被称为新基建的区块链(六)

通过构建 BSN 这个公共的基础设施,不仅降低了区块链技术开发门槛,同时推行多中心化技术也有利于监管,避免互联网上充斥着没有监管的私链,这正是我国将区块链列入“新基建”的核心原因之一。聚焦于两件事:一是中国的央行数字货币,再者是区块链服务网络 BSN。BSN 构建的是面向数字经济和智慧城市的、新的可信基础设施。区块链的世界,是一个充满机遇与挑战的新天地。在这里,你们的每一份努力都将化作推动历史前行的力量。希望大家能够加入到区块链的建设当中,抓住机遇,实现自己的理想抱负。智能合约 Solidity。

2025-12-06 18:17:07 241

原创 浅谈:被称为新基建的区块链(五)

目前,区块链技术还处于发展早期,还在讨论和推进当中,而区块链的技术发展也较为坎坷。出于其虚拟货币应用的背景,早期有不少人打着区块链的名号进行坑蒙拐骗,导致大众对区块链的印象一般都是金融诈骗,因此敬而远之。上面提到的这些问题,目前都有改良的解决方案,感兴趣的读者可以自行了解。当前,做一个区块链项目的成本并不低,懂得这方面技术的人才又相当稀缺。也许,国家想要建设好区块链新基建,仍需要持续的投入与推广,降低使用成本并改进其固有问题,让更多的人与企业愿意拥抱这一新兴技术。

2025-12-05 14:34:18 291 1

原创 浅谈:被称为新基建的区块链(四)

例如,5G网络提供了所有人使用更大数据规模应用的能力,物联网则让传统的基础设施连上网络,变得智能化、可操作化,区块链则解决了数据传递中的信任问题。因此,区块链技术是可以与任何技术结合起来的,任何人都可以享受到其带来的进步。2. 我们进行电子支付时,可以直接进行点对点的支付,省去了若干中间业务系统,安全高效。3. 疫苗、药品的研发过程中可以防止各类数据造假,同时省去了对每个环节的监管成本。1. 企业之间可以省去对账环节,区块链账本是直接可用且可靠的。通过这些例子,我们不难窥见到区块链基建完善后的诸多好处。

2025-12-05 10:36:31 172

原创 浅谈:被称为新基建的区块链(三)

虽然区块链是作为比特币实现的一部分被提出,但其应用远不止虚拟货币账本这单一用途。实际上,区块链是一个非常“底层”的技术。如同互联网技术是 TCP/IP 将全世界的计算机连接起来就改变了整个社会一样,区块链是将数据传输的逻辑从串联改为了并联,防篡改、溯源等都是这种逻辑的体现。上到司法机关的电子证据获取与校验,下到创作者用区块链保护自己的作品版权,无论是在有效性还是在效率上相较传统方式都有一定的优势。

2025-12-04 11:53:54 133

空空如也

空空如也

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

TA关注的人

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