校园招聘技术笔试真题:拓扑排序与算法实现.pdfVIP

  • 0
  • 0
  • 约2.14千字
  • 约 3页
  • 2026-02-02 发布于北京
  • 举报

校园招聘技术笔试真题:拓扑排序与算法实现.pdf

二、填空题

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)

1亿VIP精品文档

相关文档