这是一个在面试中出现概率很高的一道题目,就拿我来说吧,面试了5家公司中,两家公司问了这道题目,可见,这道题目是非常经典的。 解题思想也不是很难,我熟悉的有;两种解题办法: 1. 一直连加,终止当前序列的条件是连加的和是负数 因为,一个数加上一个负数之后肯定是没有原来的数值大,所以,这肯定是没有意义的,最终,我们利用这个思想得到如下的解法。 函数声明:ll D...
分类:
编程语言 时间:
2014-10-14 15:53:09
阅读次数:
172
这道题目是求 n-1 个数的最大乘积,即数组大小为 n,则会存在 n 个 n-1 的连续数字,那么,我们需要寻找的是最大的那一个乘积。 其实看到题目,感觉很简单,循环走两遍数组就可以得到结果,但是,那样的话,复杂度是平方量级的,如果一个数组中元素很多,那么,时间效率上是不能接受的,所以,需要重新思考问题,寻找简洁的解法。 这里,我们可以利用辅助数组的办法,把需要乘在一起的数字保...
分类:
编程语言 时间:
2014-10-14 12:54:28
阅读次数:
191
题目1 : 焦距时间限制:2000ms单点时限:1000ms内存限制:256MB描写叙述一般来说,我们採用针孔相机模型,也就是觉得它用到的是小孔成像原理。在相机坐标系下,一般来说,我们用到的单位长度,不是“米”这种国际单位,而是相邻像素的长度。而焦距在相机坐标系中的大小,是在图像处理领域的一个很重要...
分类:
其他好文 时间:
2014-10-13 15:17:29
阅读次数:
159
主要难度在于何时插入换行学习到的:①vector 可以像数组一样用 不一定要用迭代器代码及注释如下:#include#includeusing namespace std;typedef struct BiTree{ BiTree * pLeft, * pRight; int data;...
分类:
其他好文 时间:
2014-10-09 23:31:23
阅读次数:
168
这道题目的意思是,在一个数组中寻找两个数,使这两个数的和等于给定的数(找到任意一组就可以了)。 题目读完之后,感觉这道题目还是很简单的,就是遍历数组呗,走两遍,即可以在O(n2)时间复杂度内解决这个问题。不过,仔细想想之后,复杂度还是可以降低的。 首先,我们可以对数组进行排序,这样,得到的数组就是一个有序数组(假设数组是递增的),那么,我们可以利用两个指针,一个指针指向数组的第...
分类:
其他好文 时间:
2014-10-09 03:39:07
阅读次数:
150
这个问题其实很容易解决,就是循环遍历一遍数组,然后找到数组中存在的最大值和最小值就可以了,书中主要讨论的问题是比较次数较小的方法,不过,书中已经证明了,无论用什么方法最少的比较次数也就是循环遍历一遍的比较,结果是O(1.5N)的,所以,很容易的可以解决这个问题。 第一种方法: 函数声明:void DutFindMaxAndMinInArray_1(int*, int, int&...
分类:
其他好文 时间:
2014-10-08 13:04:35
阅读次数:
149
如果有数n曾经用除二取余法 复杂度logn 不多说有一个logv的方法 v为1的个数 复杂度比logn小int Count(int x){ int ans = 0; while(x) { x &= (x-1); ans++; } return ans;}这里用到了位运算 x&(x-1)每次去掉一.....
分类:
其他好文 时间:
2014-10-07 20:12:04
阅读次数:
166
该题是poj的1050号题:http://poj.org/problem?id=1050同时在《编程之美》2.15小节思想是:1、把二维降到一维,把同一列的若干个数的和算出来,然后从行的角度,变成求一维数组的子数组和的最大值,一共要计算(1+n)*n/2次一维数组的和最大值2、在求同一列的若干数的和的时候,..
分类:
其他好文 时间:
2014-10-06 23:13:11
阅读次数:
269
对于计算机相关专业的学生来说,我们学习了很多的专业课程,像编程语言、算法、数据结构、编译原理、软件工程等。很多学生都会有这样的疑问:我学了这么多的课程有什么用呢?在工作中有多少会真正被应用到呢?也就是说,大家都觉得理论和实践之间有着不可逾越的鸿沟。邹欣老师的《构建之法:现代软件工程》一书很好地,并且巧妙地将理论和实践结合了起来。 继《移山之道》、《编程之美》之后,邹欣老师再推新作《构建之法:...
分类:
其他好文 时间:
2014-10-06 16:42:50
阅读次数:
178
后面两种写法很巧妙。一种利用位域,一种利用取余。这里如果不用unsigned char来做位域的话,大小就为4. unsigned char才符合题目要求。 1 void chess1() { 2 struct { 3 unsigned char a:4; 4 ...
分类:
其他好文 时间:
2014-10-01 18:46:11
阅读次数:
168