- 0
- 0
- 约2.14千字
- 约 3页
- 2026-02-02 发布于北京
- 举报
二、填空题
21.将下图进行拓扑排序后,对应的序列为ABCFD
解析:拓扑排序的定义:对一个有向无环图(DirectedAcyclicGraph简称DAG)G进
行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和
v,若u,v∈E(G),则u性序列中出现在v之前。
22.下面的函数使用二分查找算法,对已按升序排序的数组返回所要查找的数值
的数据位置,请填写缺少的两句语句:
int*BinarySearch(int*arrayAddress,intarrayLength,intvalueToSearch)
{
inthead=0;
inttail=arrayLength-1;
while(headtail)
{
mid=(head+tail)/2;
if(arrayAddress[mid]valueToSeatcj)
tail=mid-1;
else
head=mid+1;
}
if(tailarrayLengtharrayAddress[tail]==valueToSearch)
returnarrayAddress[tail];
else
returnNULL;
}
tail=mid-1;
head=mid+1;
23.一个有N个正数元素的一维数组(A[0],A[1],A[2]...,A[N-1]),求连续子数组和
的最大值。
intmax(inta,intb)
intMaxSum(int*A,intlength)
{
intnStart=A[0];
intnAll=A[0];
for(inti=1;ilenght;i++)
{
nStart=max(nAll+A[i],0);
nAll=max(nAll,nStart);
}
returnnAll;
}
nStart=max(nAll+A[i],0);nAll=max(nAll,nStart);
24.请给出二叉树的前序遍历abdefghc
25.最长递增子序列(LIS)表示在一个序列中,保持递增的最长子序列,比如(2,
1,4,2,3,7,4,6)的LIS是{1,2,3,4,6},则LIS的长度是5.
对于一个有N个元素的序列,得到LIS的长度的最优时间复杂度是O(nlogn),
空间复杂度是o(n)。
动态规划-最长上升子序列(LIS)
26.给一系列的数1,2,3,,,n(有序的)和一个栈(stack),这个栈无限大,将这
n个数按照顺序放入栈中,但是随机的从栈出,n=5,一共有多少栈方
式。42
解析:这是卡特兰数的典型应用。Catalan数的定义令h(1)=1,Catalan数满足递
归式:h(n)=h(1)*h(n-1)+h(2)*h(n-2)+...+h(n-1)h(1),n=2该递推关系的解为:
h(n)=C(2n,n)/(n+1),n=1,2,3,...(其中C(2n,n)表示2n个中取n个的组合数)
h(5)=C(10,5)/6=42
27.请给出表达式a+b*(c-d)/e-f的逆波兰式。abcd-*e/+f-
解析:先画出式子的二叉树,再写出后序遍历的结果。
三、Web前端方向附加题略
四、其他方向附加题
1.投放是腾讯收入之一,为了保证投放的对用户更有帮助,必
须分析用户对什么最感。用户的每条微薄都可以拆分成几个关键字,腾讯微
博每个月会收集到上T的关键字,请你分析出其中出现次数最多的十个关键字。
解析:先用Hashmap统计关键字的出现次数,再用“求最大的k个数”的方法,
用堆来得到出现次数最大的10个关键字。
2.腾讯首页,为了精确掌握效果,需要准实时统计每篇文章的
IP数量,即从文章
原创力文档

文档评论(0)