全部博文(43)
发布时间:2012-12-26 19:37:07
问题描述:已知两个整数数组f[]与g[],它们的元素都已经从小到大排列好,而且两个数组中的元素都各不相同。例如,f[]中有1,3,4,7,9,而g[]中有3,5,7,8,10。试编写程序算出这两个数组之间有多少组相同的元素。就这个例子而言,f[1]与g[0]是一组,f[3]与g[2]是一组。 我的思路:关键点还是"元素都已经从小到大排列好"。那么,两个数组,一起遍历就可以解决问题。代码如下: 点击(此处)折叠或打开#include <stdio.h> ......【阅读全文】
发布时间:2012-12-25 14:41:00
问题描述:已知一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的例子中3.3.3就是该数组中最长的平台。 代码如下: 点击(此处)折叠或打开#include <stdio.h> #define MAX 1000 &nb......【阅读全文】
发布时间:2012-12-24 19:56:03
问题描述:已知一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的例子中3.3.3就是该数组中最长的平台。 我的思路:用distance变量表示平台的长度,从数组target中的第i个数开始,比较target[i]与target[i+distance],如果相等,就......【阅读全文】
发布时间:2012-12-22 22:43:37
今天是2012年12月22日。今天的算法练习题是最长公共子序列的长度求解。 此题初看时,感觉问题非常复杂,要求解两个序列的最长的(可以不连续)的公共子序列。但是,"将复杂的问题分解成简单的问题"是基本的程序设计思想。分治法是将一个大问题分解成多个相似的小问题,而本题采用的动态规划算法,则是将复杂的问题分解成一系列的相似的子问题。另外,将所求解的子问题的解通过数组等容器保存起来,来节省重复求解相同子问题的时间,是动态规划算法的一个很重要的思想:备忘录思想。&nbs......【阅读全文】
发布时间:2012-12-19 10:59:49
进程即一个程序的动态执行。引用apue上的一句话:"A thorough understanding of the UNIX System's process control is essential for advanced programming".一.总述 1.进程的开始 在C语言中,进程是由一个main函数开始。 int main(int argc,char......【阅读全文】