![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 68
_Lance
编程爱好者
展开
-
如何证明平衡树可以通过左旋+右旋保持平衡?
注意事项:以下内容用到大量的代号,建议一边画图,一边推导 假设,左子树高度为LH,右子树高度为RH,左孩子的左子树高度为LLH,左孩子的右子树高度为LRH,右孩子的左子树高度为RLH,右孩子的右子树高度为RRH,旋转后左子树高度为NLH,旋转后右子树高度为NRH 1. LL与RR 以LL情况为例,可知: LH = RH + 2 LH = max(LLH, LRH) + 1 = LLH + 1 RH = LLH - 1 LRH + 1 <= LLH <= LRH + 2 .原创 2021-09-28 17:40:26 · 241 阅读 · 0 评论 -
为什么KMP算法的预处理时间是Θ(m)?
《算法导论》P590已经描述过,但并没有细说,或者只是描述一个名词“摊还分析”,所以我按自己的理解重新描述 COMPUTE-PREFIX-FUNCTION(P) m=P.length let π[1..m] be a new array π[1]=0 k=0 for q=2 to m while k>0 and P[k+1]!=P[q] k=π[k] if P[k+1]==P[原创 2016-07-23 23:04:42 · 1397 阅读 · 0 评论 -
装载问题
解算法:动态规划、贪心算法、回溯法都可以 1,问题描述: 有n个重量为w(i)的集装箱,要装入到两艘轮船A和B,轮船的载重量分别为W(1)和W(2),问:能否找到一组装载方案? 2,涉及变量、定量: W(1):第一艘轮船的载重量(最大能装的重量) W(2):第二艘轮船的载重量 A:第一艘轮船 B:第二艘轮船 w(i):第i个集装箱的重量 n:集装箱的数量 w:集装箱原创 2015-12-22 12:51:05 · 847 阅读 · 0 评论 -
BASIC-12 十六进制转八进制 (用java超时的原因)
以下是对于“BASIC-12 十六进制转八进制 (用java超时的原因)”的专题讲解 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应原创 2016-01-04 14:26:41 · 751 阅读 · 1 评论 -
三杯水问题 算法分析、设计与实现(Java)
问题描述:有标注A、B、C的三个杯子,A、B、C杯的最大容量分别为8L、5L、3L,现有A杯中有水8L,请通过算法获取4L+4L水。 策略: (1) 选择实现的语言(这里以java为例) (2) 如果不知道算法该怎设计,可以先将必要的实体、边界找出,并抽象成类。(缩小所需考虑的内容) (3) 按“已知算法->递归->分治->贪心->回溯法->分支限界原创 2016-01-02 10:13:54 · 3593 阅读 · 0 评论 -
第K大数 算法分析、设计与实现(Java)
问题描述:有一个大小为n的数组A[0,1,2,…,n-1],求其中第k大的数。 策略: (1) 判断问题的性质,是排序型?最优型?其他? (2) 根据不同类型的问题挑选不同的算法。“已知算法->递归->分治->贪心->回溯法->分支限界法->动态规划->算法设计” (3) 根据相应的算法进行分析 目录 0,分析输入输出... 1 1,分析算法...原创 2016-01-02 12:00:09 · 2083 阅读 · 2 评论 -
棋盘覆盖 算法分析、设计与实现(Java)
该篇虽然与很多的博客、解说一样讲的都是棋盘覆盖的解法。但是,该篇更多地倾向于“证明”,这也是我与很多读者都想知道的,而不是开篇就上代码。 目录 0,问题描述... 1 1,相关博客... 1 2,提出命题... 1 3,命题证明... 1 4,分析算法... 2 5,代码实现... 2 0,问题描述 http://baike.baidu.com原创 2016-01-02 14:05:38 · 2726 阅读 · 0 评论 -
求多个数的最小公倍数
思路来源:解蓝桥杯练习题: 历届试题 核桃的数量 问题描述 小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是: 1. 各组的核桃数量必须相同 2. 各组内必须能平分核桃(当然是不能打碎的) 3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛) 输入格式原创 2014-12-20 10:08:11 · 575 阅读 · 0 评论 -
离散数学之最优二元正则树的Java实现
需求描述: 输入树叶数,输入树叶的权值,计算得最优二元正则树,并打印。 用途: ①快速计算最优二元正则树 ②可用于最优多元正则树的模板 效果展示: 说明: ①如:"16(0)",其中16为节点的权值,0为层数,即根节点。 ②上述样例使用的是:“先根次序遍历”,中根遍历、后根遍历都可以从类TreeNodeConstants中找到相应的值 ③TreeN原创 2014-12-22 23:49:28 · 1614 阅读 · 0 评论 -
蓝桥杯练习: 算法训练 矩阵乘法
问题描述 输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。 输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200)。 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。 接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。 输出格式 m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。原创 2014-12-19 22:31:25 · 1500 阅读 · 1 评论 -
蓝桥杯练习: 算法训练 关联矩阵
问题描述 有一个n个结点m条边的有向图,请输出他的关联矩阵。 输入格式 第一行两个整数n、m,表示图中结点和边的数目。n 接下来m行,每行两个整数a、b,表示图中有(a,b)边。 注意图中可能含有重边,但不会有自环。 输出格式 输出该图的关联矩阵,注意请勿改变边和结点的顺序。 样例输入 5 9 1 2 3 1 1 5 2 5原创 2014-12-19 22:38:35 · 840 阅读 · 0 评论 -
最优二元正则树 Java实现
需求分析: ①输入树叶数 ②输入树叶权值 ③输出最优二元正则树的遍历 效果展示: 效果解说: 例如:“16(0)”,其中16是节点的权值,0是节点的层数。0层代表根节点 涉及类: ①TreeNodeMananger : 根据树叶的权值或者树叶节点计算根节点,遍历树(先根,中根,后根) import java.math.BigDecimal; im原创 2014-12-23 08:21:45 · 989 阅读 · 0 评论 -
hdu acm1005解题思路
注意,这里只提供思路。下面将进行数学分析,数学学渣退散。(基本公式) -----------------------------------------------------------------基本情况--------------------------------------------------------------------------- 2015年11月24原创 2015-11-24 20:34:02 · 1421 阅读 · 2 评论 -
1005. 继续(3n+1)猜想 (25)
1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。原创 2015-05-21 10:53:12 · 549 阅读 · 0 评论