二零一四年3月29日腾讯笔试

2014年3月29日腾讯笔试

关于腾讯笔试,很多都是在考虑概念题,最后一个题当时没想明白,现在说明:

题目:一个数组,每个元素存储着高度,求出矩形的最大长度!

当时想着,遍历每一次按一个固定长度搜索,最终竟然用到O(n^3)时间复杂度。后来同学用了平方复杂度,直到今天晚上用笔写了出来,才想明白。

#include <iostream>
using namespace std;
int MaxArea(int *a,int n)
{
	int max=0;
	for (int i=0;i<n;i++)//the start dot
	{
		int min=a[i];
		for (int j=i+1;j<n;j++)//i the search length
		{
			if (min>a[j])//get the shortest height
				min=a[j];
			if(max<min*(j-i+1))//compute the matrix area
				max=min*(j-i+1);
		}
	}
	return max;
}
int main()
{
	int a[9]={7,5,6,0,6,9,2,7,6};
	cout<<"max= "<<MaxArea(a,9)<<endl;
	return 0;
}
当时听到说外层循环是搜索步长,早上睡醒,想了一会也是没想明白。

考到许多网络定义的问题,如浏览器不能跳转状态码,301还是302等等

设计模式的题目,数据结构的题目等等。