- 浏览: 1409868 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
sdgxxtc:
[quo[color=red]te][/color]
C#使用OleDb读取Excel,生成SQL语句 -
zcs302567601:
博主,你好,一直都有个问题没有搞明白,就是 2.x的版本是通过 ...
NGUI所见即所得之UIPanel -
一样的追寻:
感谢楼主!
有向强连通和网络流大讲堂——史无前例求解最大流(最小割)、最小费用最大流 -
cp1993518:
感谢!从你的博客里学到了很多
Unity日志工具——封装,跳转 -
cp1993518:
学习了~,话说现在的版本custom还真的变委托了
NGUI所见即所得之UIGrid & UITable
C语言名题精选百则——序曲
从本篇博文开始,D.S.Qiu(以后就这么称呼自己了)将对《C语言名题精选百则》进行整理推出,不光只是书上的名题,还会依据互联网的资源进行不断补充,加强。等全书各个章节都整理完,会做一个总汇。如果你有建议、批评或补充,请你不吝提出(email:gd.s.qiu@gmail.com,或者直接在本文末评论)。你的支持和鼓励,我将渐行渐远!
终于完成《C语言名题精选百则——序曲》这篇博客了,这系列的每个问题都尽量会有【题目说】【解答】【问题实现】【习题】,如果可以的话,还会有【算法改进】这个分块(如问题1.1最长平台的算法改进,个人觉得还是很不错的),《序曲》主要是介绍了关于有序数组的5个问题(点击查看更多数组和字符串问题),相对简单,但是要是尽善进美还有待不断的挖掘。下一篇是《数字问题》(其实就是数论的一些问题),更多关注:http://dsqiu.iteye.com。
问题1.1最长平台(PLATEAU.C )
已知一个已经从小到大排序的数组,这个数组中的一个平台(Plateau)就是连续的一串 值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6 都是平台。试编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的 例子中3.3.3就是该数组中最长的平台。
【说明】
这个程序十分简单,但是要编写好却不容易,因此在编写程序时应该考虑下面几点:
(1)使用的变量越少越好。
(2)能否只把数组的元素每一个都只查一次就得到结果?
(3)程序语句也要越少越好。
【问题实现】
int longest_plateau(int x[], int n) { int length = 1; /* plateau length >= 1. */ int i; for (i = 1; i < n; i++) if (x[i] == x[i-length]) length++; return length; }
【算法改进】
如果不考虑题目说明中的条件限制,可以对该算法进行改进。
int longest_plateau(int x[],int n) { if(n== 0) return 0; int length = 0; int start = 0; while(start + length< n) { start += length; int elem = array[start]; if(array[start - length] != elem) { for(;array[start - 1] == elem;start --); continue; } for(;start < n && array[start] == elem;length ++,start ++); } return length; }
int dominance_count(int f[], int g[], int m, int n) { int index_f, index_g; int count; count = index_f = index_g = 0; while (index_f < m && index_g < n) if (f[index_f] <= g[index_g]) index_f++; else index_g++, count += m - index_f; return count; }
int coincidence_count(int f[], int g[], int m, int n) { int index_f, index_g; /* subscripts for f and g */ int count; /* equal pair counter */ count = index_f = index_g = 0; while (index_f < m && index_g < n) if (f[index_f] < g[index_g]) /* if f[] is less */ index_f++; /* then move f */ else if (f[index_f] > g[index_g]) /* if f[] > */ index_g++; /* then move g */ else count++, index_f++, index_g++; /* EQUAL */ return count; }
#define min(x, y) ((x) < (y) ? (x) : (y)) int min_distance(int x[], int y[], int m, int n) { int minimum = INT_MAX; /* INT_MAX is from limits.h */ int index_x = 0, index_y = 0; while (index_x < m && index_y < n) if (x[index_x] >= y[index_y]) { minimum = min(minimum, x[index_x]-y[index_y]); index_y++; } else { minimum = min(minimum, y[index_y]-x[index_x]); index_x++; } return minimum; }
int head_tail(int x[], int n) { int prefix = 0, suffix = 0; int prefix_idx = 0, suffix_idx = n-1; int count = 0; while (suffix_idx >= 0 && prefix_idx <= n-1) if (prefix < suffix) /* prefix too small */ prefix += x[prefix_idx++]; else if (prefix > suffix) /* suffix too small */ suffix += x[suffix_idx--]; else { /* get an equal pair: */ count++; /* increase count and */ prefix += x[prefix_idx++]; /* advance pref.*/ suffix += x[suffix_idx--]; /* and suffix */ } return count; }
①C语言名题精选百则技巧篇 冼镜光编著 第一章
②zhang_xzhi_xjtu: http://zhang-xzhi-xjtu.iteye.com/blog/506185
发表评论
-
C#使用OleDb读取Excel,生成SQL语句
2013-06-27 15:47 10075C#使用OleDb读取Excel,生成SQL语句 ... -
C#读写XML文件工具类——满足一切需求
2013-06-18 07:33 10781C#读写XML文件工具类— ... -
C#解析XML
2013-06-17 19:20 0覆盖 -
C#读取Excel数据动态生成对象并进行序列化
2013-06-16 20:10 8007C#读取Excel数据 ... -
Unity导入unitypackage总是失败问题原因
2013-06-11 22:54 11486最近尝试手游开发,用的Unity引擎,然后开 ... -
C# socket连接服务器发送和接收数据在设置断点单步执行没有问题但是直接运行不能成功
2013-06-04 20:26 5977题目有点长, ... -
C# 调用Delegate.CreateDelegate方法出现“未处理ArgumentException”错误解决
2013-05-31 12:24 3569在C# 调用Delegate.Create ... -
考题小记(希望能持续增加)
2013-04-03 16:11 0在一块黑板上将123456789重复50次得到450位数12 ... -
数组问题集结号
2012-12-06 22:01 0数组是最简单的数据结构,数组问题作为公司招聘的笔试和面试题目 ... -
算法问题分析笔记
2012-12-05 11:59 01.Crash Balloon Zhejiang Univer ... -
Java文件输出时,文件大小只有24KB
2012-11-14 22:10 1661今天,用Java做点事情,出现了一个很莫名其妙的事情就是文件 ... -
C语言名题精选百则——终曲
2012-11-05 23:27 50第9章终 曲 W 闼题9.1等璗正负号段 ... -
C语言名题精选百则——游戏问题
2012-11-05 23:27 86第8章游戏问题 问题8.1苞数阶魔方阵(MAGIC_O ... -
C语言名题精选百则——数字问题
2012-11-04 23:25 4100C语言名题精选百则——数字问题 尊重他人的劳动, ... -
C语言名题精选百则——排序
2012-11-04 23:29 128第5章排 序 问题5.1 二分插入法(BIN ... -
C语言名题精选百则——查找
2012-11-04 23:29 4141尊重他人的劳动,支持原创 本篇博文,D.S.Q ... -
C语言名题精选百则——排列,组合与集合
2012-11-04 23:28 10838C语言名题精选百则—— ... -
C语言名题精选百则——数字问题
2012-11-04 23:23 0C语言名题精选百则 ... -
C语言名题精选百则——序曲
2012-11-04 23:02 2C语言名题精选百则—— ... -
大数据、海量数据处理之偷星摘月
2012-10-25 14:45 0第一部分、十道海量数据处理面试题 1、海量日志数据,提 ...
相关推荐
《C语言名题精选百则》(技巧篇)收集了100则C语言程序设计题,共分9类。第一类比较简单,主要希望读者了解到《C语言名题精选百则》(技巧篇)的题目、解法与其他书籍之间的差异;第二至六类分别是关于数字、组合数学或...
《C语言名题精选百则技巧篇》是针对C语言编程爱好者和学习者的一份珍贵资源,包含了大量经典编程题目和解题技巧。这个压缩包文件包含了一系列与C语言编程相关的子目录,如STRING(字符串处理)、GAMES(游戏编程)、...
《C语言名题精选百则》(技巧篇)收集了100则C语言程序设计题,共分9类。第一类比较简单,主要希望读者了解到《C语言名题精选百则》(技巧篇)的题目、解法与其他书籍之间的差异;第二至六类分别是关于数字、组合数学或...
《C语言名题精选百则 技巧篇》是一本专为C语言爱好者和学习者设计的书籍,由冼镜光编着。这本书的核心在于通过一百个精心挑选的编程题目,帮助读者深入理解和掌握C语言的技巧。这些题目涵盖了C语言的各个关键领域,...
C语言名题精选百则(技巧篇) 本书特点: 本书体例别具一格; 囊括100则经典C语言程序设计题; 精辟文字全面解析C语言程序设计技巧; 免费提供完整的源程序下载。
C语言名题精选百则 技巧篇_冼镜光编着.pdf
C语言名题精选百则(技巧篇)(PDF文檔+光盘).rar 适合初学者 是目前国内C语言学习方面的圣经~ 比下载区内任何一部书更齐全与简单 本书体例别具一格; 囊括100则经典C语言程序设计题; 精辟文字全面解析C语言程序设计...
首先道歉,因为前面搞...C语言名题精选百则技巧篇-冼镜光 神书,很好的一本书,得到了大家的认同 (不是源代码!!!!!) [注意]因为我只可以上传小于20MB的文件,所以分卷了,要下两部分才能打开!!,这是part2
里面罗列了很多内容,基本上都不是特别难,但是特别有代表性,很能启发思维。我是在网上看到这本书,然后还特意去买了个复印版的纸质书籍来看,研究了很久,确实对我的思维有了一定的启示,也更换了我看待问题的思维...
本书收集了100则C语言程序设计题,共分9类。 這本書裡頭的題目,有許多是知名的問題,它們散見於各類書本、教科書與期刊、雜誌。
《C语言名题精选百则源码.zip》这个压缩包文件包含了C语言编程的经典问题集,旨在提升读者在C语言程序设计中的技巧和理解。这些题目涵盖了从基础到高级的各种编程概念,通过解决这些问题,开发者可以深入理解C语言的...
c语言名题精选百则,里面的题目很经典。大家可以参考参考。
除了上述的基础类别之外,《C语言名题精选百则 技巧篇》还包含了一类特别的题目——小游戏程序。这类题目虽然看似简单,却能有效地帮助学习者将编程知识应用于实际的项目中。通过编写猜数字游戏、井字游戏等简单文字...
本书收集了100则C语言程序设计题,分别是关于数学,查找,排序字符串等方面的题目
C语言名题精选百则(技巧篇) 本书特点: 本书体例别具一格; 囊括100则经典C语言程序设计题; 精辟文字全面解析C语言程序设计技巧; 免费提供完整的源程序下载。
《C语言名题精选百则+技巧篇》是由冼镜光编著的一本关于C语言学习的书籍,它集合了100个精选的C语言编程题目,旨在帮助读者深入理解和掌握C语言的核心概念和技术。这本书不仅包含了丰富的编程题目,还提供了相应的...
C语言名题精选百则(技巧篇) 本书特点: 本书体例别具一格; 囊括100则经典C语言程序设计题; 精辟文字全面解析C语言程序设计技巧; 免费提供完整的源程序下载。
C语言名题精选百则 技巧篇_冼镜光编著 里面的例题讲的非常的详细,适合看看,对提高思路有帮助
C语言名题精选百则技巧篇B5.507,电子扫描版