C
甘志强
Web学习中...
展开
-
【数据结构】 之 单链表(含实例)
笔者现大三,这篇博文及后面的几篇博文都是对大二所做的题目一些总结,哈哈,感觉自己那时候学的还可以,希望自己这点笔记能对你们有点帮助吧,加油!!!其实数据结构也没传说中的那么难,并且以后在我们面试的时候,数据结构可是面试官的法宝,对吧,咱们不能输在起跑线线上,好了,废话不多说,现在让我们来学习最简单链表——单链表。我先把老师给我们出的题目给大家看看吧,不知道我们是不是一样的(纯洁的微笑),题目如下:原创 2016-10-12 14:06:16 · 3111 阅读 · 0 评论 -
算法总结——大整数乘法
问题描述求两个不超过200位的非负整数的积。输入数据有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。 输入样例1234567890098765432100输出样例1219326311126352690000解题思路在下面的例子程序中,用原创 2016-10-12 17:58:31 · 5443 阅读 · 2 评论 -
算法总结——大整数加法
问题描述 求两个不超过200位的非负整数的和。输入数据有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。 输入样例2222222222222222222233333333333333333333输出样例Output Sample:555555原创 2016-10-12 17:51:38 · 6557 阅读 · 0 评论 -
【动态规划】 之 动态规划解题的一般思路
许多求最优解的问题可以用动态规划来解决。用动态规划解题,首先要把原问题分解为若干个子问题,这一点和前面的递归方法类似。区别在于,单纯的递归往往会导致子问题被重复计算,而用动态规划的方法,子问题的解一旦求出就会被保存,所以每个子问题只需求解一次。子问题经常和原问题形式相似,有时甚至完全一样,只不过规模从原来的n变成了n-1,或从原来的n×m变成了n×(m-1) ……等等。找到子问题,就意味着找到原创 2016-10-12 17:44:06 · 1690 阅读 · 0 评论 -
【递归】 之 逆波兰表达式
问题描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括 + - * / 四个。输入数据输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数原创 2016-10-12 17:40:26 · 1264 阅读 · 0 评论 -
【动态规划】 之 最长公共子序列
问题描述我们称序列Z = 是序列X = 的子序列当且仅当存在严格上升的序列,使得对j = 1, 2, ... ,k, 有xij = zj。比如Z = 是X = 的子序列。 现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。 输入数据输入包括多组测试数据。每组数据包括一行,给出两个长度不超过200的字符原创 2016-10-12 17:33:39 · 386 阅读 · 0 评论 -
【动态规划】 之 最长上升子序列
问题描述一个数的序列bi,当b1 你的任务,就是对于给定的序列,求出最长上升子序列的长度。输入数据输入的第一行是序列的长度N (1 输出要求最长上升子序列的长度。输入样例71 7 3 5 9 4 8输出样例4解题思路如何把这个问题分解成子问题呢?经过分析,发现 “求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度”是个好的子问题――这原创 2016-10-12 17:23:59 · 418 阅读 · 0 评论 -
【递归】 之 二叉树
问题描述如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从10到根结点的路径是(10, 5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1, y原创 2016-10-12 17:15:08 · 389 阅读 · 0 评论 -
【递归】 之 菲波那契数列
问题描述菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。输入数据第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 输出要求n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。输入样例452191原创 2016-10-12 17:09:31 · 2882 阅读 · 0 评论 -
C语言标准库函数
C语言中有大量的标准库函数,根据功能不同,声明于不同的头文件中。这些库函数在C++中也能使用。下面分类列举了一些C语言常用库函数,由于篇幅所限,只列出函数名字及其作用。数学函数数学库函数声明在math.h中,主要有:abs(x) 求整型数x的绝对值cos(x) x(弧度)的余弦fabs(x) 求浮点数x的绝对值 ceil(x) 求不小于x的最小整数floor(x) 求原创 2016-10-12 16:44:36 · 852 阅读 · 0 评论 -
算法总结——约瑟夫问题
问题描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。 输入数据每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 0 0 输出要求对于每行输入数据(最后一行除外),原创 2016-10-12 16:39:32 · 914 阅读 · 0 评论 -
算法总结——判断闰年
问题描述判断某年是否是闰年。公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年,如1900年是平年,2000年是闰年。输入数据一行,仅含一个整数a(0 输出要求一行,如果公元a年是闰年输出Y,否则输出N。输入样例2006输出样例N解题思路这个题目主要考察闰年的定义,使用基本的逻辑判断语句就可以了。考虑到输入的范围在0到原创 2016-10-12 16:31:15 · 14407 阅读 · 0 评论 -
算法总结——校门外的树
问题描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端原创 2016-10-12 16:18:00 · 4468 阅读 · 0 评论 -
算法总结——八皇后问题(三种解法)
问题描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串原创 2016-10-12 16:04:41 · 36319 阅读 · 5 评论 -
【数据结构】 之 表达式求值
如要下载编译器,请看我的之前博客笔者现大三,这篇博文及后面的几篇博文都是对大二所做的题目一些总结,哈哈,感觉自己那时候学的还可以,希望自己这点笔记能对你们有点帮助吧,加油!!!其实数据结构也没传说中的那么难,并且以后在我们面试的时候,数据结构可是面试官的法宝,对吧,咱们不能输在起跑线线上,好了,废话不多说,现在让我们来学习表达式求值。我先把老师给我们出的题目给大家看看吧,不知道我们是不是一样的原创 2016-10-12 15:21:46 · 4680 阅读 · 0 评论 -
算法总结——大整数除法
问题描述求两个大的正整数相除的商输入数据第1行是测试数据的组数n,每组测试数据占2行,第1行是被除数,第2行是除数。每组测试数据之间有一个空行,每行数据不超过100个字符输出要求n行,每组测试数据有一行输出是相应的整数商输入样例3240533731296337335900926045774205743923049649393035559579766079108273原创 2016-10-12 18:10:50 · 14564 阅读 · 0 评论