算法笔记
算法笔记例题代码,练习题解
G0rgeoustray
Done is better than perfect.
展开
-
算法笔记练习 题解合集
说明带链接的小节标题是该链接对应的 codeup 地址第 3 章 入门篇(1)——入门模拟3.6 字符串处理问题 A: 字符串连接问题 B: 首字母大写问题 C: 字符串的查找删除问题 D: 单词替换问题 E: 字符串去特定字符问题 F: 数组逆置问题 G: 比较字符串问题 H: 编排字符串问题 I: 【字符串】回文串第 4 章 入门篇(2)——算法初步4.1 ...原创 2020-03-27 13:01:36 · 3917 阅读 · 1 评论 -
算法笔记练习 3.1 简单模拟 问题 F: A+B和C (15)
算法笔记练习 题解合集本题链接题目题目描述给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。输入输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。样例输入41 2 32 3 42147483647 0 214748原创 2020-05-09 15:41:44 · 259 阅读 · 0 评论 -
算法笔记练习 3.1 简单模拟 问题 E: Shortest Distance (20) - 超级详细的思路讲解
算法笔记练习 题解合集本题链接题目题目描述The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.输入Each input file contains one test case. For each case, the first line co原创 2020-05-09 15:30:08 · 315 阅读 · 3 评论 -
算法笔记练习 3.1 简单模拟 问题 D: 比较奇偶数个数
算法笔记练习 题解合集本题链接题目题目描述第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。输入输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000)。输出如果偶数比奇数多,输出NO,否则输出YES。样例输入167 70 69 24 78 58 62 64 样例输出YESNO代码#include <cstdio>int main() { int T, n; while (sc原创 2020-05-09 14:37:39 · 251 阅读 · 0 评论 -
算法笔记练习 3.1 简单模拟 问题 C: 特殊乘法
算法笔记练习 题解合集本题链接题目题目描述写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35输入两个小于1000000000的数输出输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。样例输入24 6542 666663 67样例输出6618039思路把两个数字各个数位上的数,分别拆分进两个数组,然后用两层循环计算答案。代码#incl原创 2020-05-09 14:33:12 · 271 阅读 · 0 评论 -
算法笔记练习 3.1 简单模拟 问题 B: A+B
算法笔记练习 题解合集本题链接题目题目描述给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。现在请计算A+B的结果,并以正常形式输出。输入输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。输出请计算A+B的结果,并以正常形式输出,每组数据占一行。样例输入-234,567,890 123,456,7891,234 2,345,678样例输出-1111111012346912思路建议用字符串原创 2020-05-09 14:28:30 · 348 阅读 · 3 评论 -
算法笔记练习 3.1 简单模拟 问题 A: 剩下的树
算法笔记练习 题解合集本题链接题目题目描述有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。输入两个整数L(1<=L原创 2020-05-08 22:09:58 · 667 阅读 · 0 评论 -
算法笔记练习 3.3 图形输出 问题 D: 沙漏图形 tri2str [1*+]
算法笔记练习 题解合集本题链接题目题目描述问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例输入样例:3输出样例:* * * * * * * * * * *数据规模 1<= n <=50思路先输出上半部分,再输出下半部分。代码#include <cstdio>int main() { int n, i, ...原创 2020-05-07 17:00:08 · 409 阅读 · 0 评论 -
算法笔记练习 3.3 图形输出 问题 C: 等腰梯形
算法笔记练习 题解合集本题链接题目题目描述请输入高度h,输入一个高为h,上底边长为h 的等腰梯形(例如h=4,图形如下)。 **** ****** ******************输入输入第一行表示样例数m,接下来m行每行一个整数h,h不超过10。输出对应于m个case输出要求的等腰梯形。样例输入14样例输出 **** ****** ***...原创 2020-05-07 16:58:13 · 829 阅读 · 0 评论 -
算法笔记练习 3.3 图形输出 问题 B: Hello World for U
算法笔记练习 题解合集本题链接题目题目描述Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, “helloworld” can be printed as:h de ll rlowoThat is, ...原创 2020-05-07 16:56:34 · 288 阅读 · 0 评论 -
算法笔记练习 3.3 图形输出 问题 A: 输出梯形
算法笔记练习 题解合集本题链接题目题目描述输入一个高度h,输出一个高为h,上底边为h的梯形。输入一个整数h(1<=h<=1000)。输出h所对应的梯形。样例输入5样例输出 ***** ******* ********* ************************思路见代码,关键就是for循环的循环次数。代码...原创 2020-05-07 16:51:55 · 312 阅读 · 0 评论 -
算法笔记练习 3.4 日期处理 问题 E: 日期累加
算法笔记练习 题解合集本题链接题目题目描述设计一个程序能计算一个日期加上若干天后是什么日期。输入输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。输出输出m行,每行按yyyy-mm-dd的个数输出。样例输入12008 2 3 100样例输出2008-05-13思路和上一题类似,一天天加上去,该进位的时候记得进位即可。代码#includ...原创 2020-05-06 21:28:17 · 262 阅读 · 0 评论 -
算法笔记练习 3.4 日期处理 问题 D: 日期类
算法笔记练习 题解合集本题链接题目题目描述编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作。输入输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。输出输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。样例输入21999 10 202001 1 31样例输出1999...原创 2020-05-06 21:26:35 · 342 阅读 · 0 评论 -
算法笔记练习 3.4 日期处理 问题 C: 打印日期
算法笔记练习 题解合集本题链接题目题目描述给出年分m和一年中的第n天,算出第n天是几月几号。输入输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。输出可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。样例输入2013 602012 3002011 3502000 211样例输出20...原创 2020-05-06 21:24:16 · 434 阅读 · 0 评论 -
算法笔记练习 3.4 日期处理 问题 B: Day of Week
算法笔记练习 题解合集本题链接题目题目描述We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400.For example, years 2004,...原创 2020-05-06 21:20:41 · 373 阅读 · 0 评论 -
算法笔记练习 3.4 日期处理 问题 A: 日期差值
算法笔记练习 题解合集本题链接题目题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值样例输入2013010120130105样例输出5思路和书上思路不太一样,用了比较暴力的解法,假设公元 0 年 1 月 1 日是第 1 ...原创 2020-05-06 21:15:56 · 259 阅读 · 0 评论 -
算法笔记练习 9.8 哈夫曼树 问题 E: 合并果子-NOIP2004TGT2
算法笔记练习 题解合集本题链接题目题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在...原创 2020-05-06 18:09:46 · 258 阅读 · 0 评论 -
算法笔记练习 9.8 哈夫曼树 问题 D: Haffman编码
算法笔记练习 题解合集本题链接题目题目描述哈弗曼编码大家一定很熟悉吧(不熟悉也没关系,自己查去。。。)。现在给你一串字符以及它们所对应的权值,让你构造哈弗曼树,从而确定每个字符的哈弗曼编码。当然,这里有一些小规定:1.规定哈弗曼树的左子树编码为0,右子树编码为1;2.若两个字符权值相同,则ASCII码值小的字符为左孩子,大的为右孩子;3.创建的新节点所代表的字符与它的做孩子的字符相同...原创 2020-05-06 18:05:25 · 559 阅读 · 0 评论 -
算法笔记练习 9.8 哈夫曼树 问题 C: 哈夫曼树 - 超级详细的思路讲解
算法笔记练习 题解合集本题链接题目题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出输出权值。样例输入22 8 3...原创 2020-05-06 18:01:52 · 1898 阅读 · 0 评论 -
算法笔记练习 9.8 哈夫曼树 问题 B: 算法6-13:自顶向下的赫夫曼编码
算法笔记练习 题解合集本题链接题目题目描述在本题中,我们将要讨论的是自顶向下的赫夫曼编码算法。从根出发,遍历整棵赫夫曼树从而求得各个叶子结点所表示的字符串。算法的关键部分可以表示如下:在本题中,读入n个字符所对应的权值,生成赫夫曼编码,并依次输出计算出的每一个赫夫曼编码。输入输入的第一行包含一个正整数n,表示共有n个字符需要编码。其中n不超过100。第二行中有n个用空格隔开的正整数...原创 2020-05-06 17:28:08 · 820 阅读 · 0 评论 -
算法笔记练习 9.8 哈夫曼树 问题 A: 算法6-12:自底向上的赫夫曼编码
算法笔记练习 题解合集本题链接题目题目描述在通讯领域,经常需要将需要传送的文字转换成由二进制字符组成的字符串。在实际应用中,由于总是希望被传送的内容总长尽可能的短,如果对每个字符设计长度不等的编码,且让内容中出现次数较多的字符采用尽可能短的编码,则整个内容的总长便可以减少。另外,需要保证任何一个字符的编码都不是另一个字符的编码前缀,这种编码成为前缀编码。而赫夫曼编码就是一种二进制前缀编码...原创 2020-05-06 17:21:18 · 1167 阅读 · 0 评论 -
算法笔记练习 9.7 堆 问题 C: 合并果子(堆)
算法笔记练习 题解合集本题链接题目题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合...原创 2020-05-05 15:45:03 · 682 阅读 · 0 评论 -
算法笔记练习 9.7 堆 问题 B: 序列合并 - 超级详细的思路讲解
算法笔记练习 题解合集本题链接题目题目描述有两个长度都为N的序列A和B,在A和B中各取一个数相加可以得到N2个和,求这N2个和中最小的N个。输入第一行一个正整数N(1 <= N <= 100000)。第二行N个整数Ai,满足Ai <= Ai+1且Ai <= 109第三行N个整数Bi,满足Bi <= Bi+1且Bi <= 109输出输出仅有一行...原创 2020-05-05 15:30:38 · 357 阅读 · 0 评论 -
算法笔记练习 9.7 堆 问题 A: 算法10-10,10-11:堆排序
算法笔记练习 题解合集本题链接题目题目描述堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最小或最大值,从而依次得出每一个元素的位置。堆排序的算法可以描述如下:在本题中,读入一串整数,将其使用以上描述的堆排序的方法从小到大排序,并输出。输入输入的第一行包含1个正...原创 2020-05-05 15:12:20 · 455 阅读 · 0 评论 -
算法笔记练习 3.5 进制转换 问题 D: 八进制
算法笔记练习 题解合集本题链接题目题目描述输入一个整数,将其转换成八进制数输出。输入输入包括一个整数N(0<=N<=100000)。输出可能有多组测试数据,对于每组数据,输出N的八进制表示数。样例输入985样例输出11105思路介绍一下,C 语言和 C++ 是自带八进制、十六进制的格式化输出的,八进制的占位符是%o,十六进制的占位符是%x或者%...原创 2020-05-04 18:33:21 · 375 阅读 · 0 评论 -
算法笔记练习 3.5 进制转换 问题 C: 进制转换
算法笔记练习 题解合集本题链接题目题目描述将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出每行输出对应的二进制数。样例输入9852111126样例输出11110110011101001110001100110思路很久以...原创 2020-05-04 18:29:15 · 272 阅读 · 0 评论 -
算法笔记练习 3.5 进制转换 问题 B: 数制转换
算法笔记练习 题解合集本题链接题目题目描述求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。不同进制的表示符号为(0,1,…,9,a,b,…,f)或者(0,1,…,9,A,B,…,F)。输入输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b &...原创 2020-05-04 18:13:11 · 387 阅读 · 0 评论 -
算法笔记练习 3.5 进制转换 问题 A: 又一版 A+B
算法笔记练习 题解合集本题链接题目题目描述输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。输入输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。输出输出格式:每个测试用例的输出占一行,输出A+B的m进制数。样例输入2 4 58 123 4560...原创 2020-05-04 18:04:41 · 296 阅读 · 0 评论 -
算法笔记练习 9.6 并查集 问题 D: More is better - 超级详细的思路讲解
算法笔记练习 题解合集本题链接题目题目描述Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the better it will be. Of course there are certain requirements....原创 2020-05-04 16:47:55 · 389 阅读 · 0 评论 -
算法笔记练习 9.6 并查集 问题 C: How Many Tables
算法笔记练习 题解合集本题链接题目题目描述Today is Ignatius’ birthday. He invites a lot of friends. Now it’s dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the f...原创 2020-05-04 16:22:52 · 222 阅读 · 0 评论 -
算法笔记练习 9.6 并查集 问题 B: 畅通工程
算法笔记练习 题解合集本题链接题目题目描述某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数...原创 2020-05-04 16:19:51 · 303 阅读 · 0 评论 -
算法笔记练习 9.6 并查集 问题 A: 通信系统
算法笔记练习 题解合集本题链接题目题目描述某市计划建设一个通信系统。按照规划,这个系统包含若干端点,这些端点由通信线缆链接。消息可以在任何一个端点产生,并且只能通过线缆传送。每个端点接收消息后会将消息传送到与其相连的端点,除了那个消息发送过来的端点。如果某个端点是产生消息的端点,那么消息将被传送到与其相连的每一个端点。为了提高传送效率和节约资源,要求当消息在某个端点生成后,其余各个端点均...原创 2020-05-04 16:13:24 · 326 阅读 · 0 评论 -
算法笔记练习 9.5 平衡二叉树(AVL树) 问题 A: 算法9-9~9-12:平衡二叉树的基本操作
算法笔记练习 题解合集本题链接题目题目描述平衡二叉树又称AVL树,它是一种具有平衡因子的特殊二叉排序树。平衡二叉树或者是一棵空树,或者是具有以下几条性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值;它的左右子树也分别为平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的...原创 2020-05-04 13:38:28 · 682 阅读 · 0 评论 -
算法笔记练习 9.4 二叉查找树(BST) 问题 B: 二叉搜索树
算法笔记练习 题解合集本题链接题目题目描述判断两序列是否为同一二叉搜索树序列输入开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树...原创 2020-05-03 16:15:59 · 333 阅读 · 0 评论 -
算法笔记练习 9.4 二叉查找树(BST) 问题 A: 二叉排序树
算法笔记练习 题解合集本题链接题目题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。样例输入12 2...原创 2020-05-03 16:09:01 · 275 阅读 · 0 评论 -
算法笔记练习 9.3 树的遍历 问题 B: 树的高度
算法笔记练习 题解合集本题链接题目题目描述一棵树有n个节点,其中1号节点为根节点。输入第一行是整数n,表示节点数后面若干行,每行两个整数a b,表示b是a的子节点。输出求这棵树的高度(根节点为第1层)样例输入51 21 33 43 5样例输出3思路用二维vector来存储这颗树,二维vector中的每一个一维vector代表一个结点,一维vector中下标...原创 2020-05-02 20:48:55 · 534 阅读 · 0 评论 -
算法笔记练习 9.3 树的遍历 问题 A: 树查找
算法笔记练习 题解合集本题链接题目题目描述有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入输入有多组数据。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。输出输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。样例输入51 2 3 4 5 771 ...原创 2020-05-02 20:42:35 · 282 阅读 · 0 评论 -
算法笔记练习 9.2 二叉树的遍历 问题 D: 二叉树遍历 - 超级详细的思路讲解
算法笔记练习 题解合集本题链接题目题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串:ABC##DE#G##F###其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入输入包括1行字符串,长度不超过100。输出可能有多组测试数据,对于每组数据,输出将...原创 2020-05-02 18:49:59 · 494 阅读 · 0 评论 -
算法笔记练习 9.2 二叉树的遍历 问题 B: 二叉树
算法笔记练习 题解合集本题链接题目题目描述如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入输入数据包括多行,每行给...原创 2020-05-02 17:23:24 · 361 阅读 · 0 评论 -
算法笔记练习 9.2 二叉树的遍历 问题 A: 复原二叉树
算法笔记练习 题解合集本题链接题目题目描述小明在做数据结构的作业,其中一题是给你一棵二叉树的前序遍历和中序遍历结果,要求你写出这棵二叉树的后序遍历结果。输入输入包含多组测试数据。每组输入包含两个字符串,分别表示二叉树的前序遍历和中序遍历结果。每个字符串由不重复的大写字母组成。输出对于每组输入,输出对应的二叉树的后续遍历结果。样例输入DBACEGF ABCDEFGBCAD CB...原创 2020-05-02 17:07:34 · 280 阅读 · 0 评论