- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录
TOC \o 1-1 \h \z \u 1 求一个集合中的连续串,使得这个连续串中各个数相加的和最大 PAGEREF _Toc168502106 \h 1
2 求一个集合中的连续串,使得这个连续串中各个数相加的和最小 PAGEREF _Toc168502107 \h 2
3 动态规划求组合 PAGEREF _Toc168502108 \h 3
4 寻找发贴“水王” PAGEREF _Toc168502109 \h 4
5 求一个字符串中最长的重复子串,0000……不算在内 PAGEREF _Toc168502110 \h 6
6 求两个字符串的最长公共子串 PAGEREF _Toc168502111 \h 8
7 读一组整数到 vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计算每对元素的和,并输出。 PAGEREF _Toc168502112 \h 10
8 整数转化为字符串 PAGEREF _Toc168502113 \h 12
9 字符串转化为整数 PAGEREF _Toc168502114 \h 13
10 转换字符串格式为:原来字符串里的字符+该字条连续出现的个数,例如字符串:1233422222转化为1121324125(1出现1次,2出现1次,3出现2次……) PAGEREF _Toc168502115 \h 14
11 将一句话里的单词进行倒置,标点符号不倒换。比如“I come from Beijing.”? “Beijing. From come I” PAGEREF _Toc168502116 \h 15
12二叉树根结点为root,用递归法把二叉树的叶子结点按从左到右的顺序连成一个单链表 PAGEREF _Toc168502117 \h 17
13 连续正整数之和 PAGEREF _Toc168502118 \h 18
14 文件中有一组整数,要求排序后输出到另一个文件中 PAGEREF _Toc168502119 \h 20
15 小猪吃米 PAGEREF _Toc168502120 \h 21
16 在一个数组中存在着新数组,求出新数组的长度。 PAGEREF _Toc168502121 \h 23
17 写函数找出一个字符串中出现频率最高的字符(如果最高频率相同的有多个字符,取最先遇见的那个字符) PAGEREF _Toc168502122 \h 24
18 十三个人围成一个圈,从第一个人开始顺序报号1、2、3。凡是报到“3”者退出圈子,请找出最后留在圈子中的人原来的序号 PAGEREF _Toc168502123 \h 26
19 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列 PAGEREF _Toc168502124 \h 28
20 十进制正数或负数转化为二进制 PAGEREF _Toc168502125 \h 31
21 将阿拉伯数字转化为中文数字,如12?“一十二” PAGEREF _Toc168502126 \h 32
22 大数存储,求100的阶乘 PAGEREF _Toc168502127 \h 35
23在一个字符串中找到第一个只出现一次的字符。如“abaccdeff”,输出b。 PAGEREF _Toc168502128 \h 36
1 求一个集合中的连续串,使得这个连续串中各个数相加的和最大
#includestdio.h
int getmax(int a[], int n, int *begin, int *end);
into main(void)
{
int a[] = {-1,-2,-3,100,-4,-5,6,-7,9,200};
int begin;
int end;
int sum;
sum = getmax(a,10,begin,end);
printf(The maximal sum is %d\n,sum);
printf(The begin index is %d, the end index is %d\n,begin,end);
return 0;
}
/*++
算法:
从第一个数出发,向右叠加,将他们的和累加于sum,只要和大于零,就继续。
期间,保存这些和值中的最大
文档评论(0)