猿辅导校招算法面试题

猿辅导2020校招面试题

——深度学习算法工程师

——2019813日星期二

一面(两道编程题)

1、列表加和

给定一个int类型的列表(如[1, 9, 8, 8])和一个加和元素(如34,计算列表元素所组成的数字(1988)与加和元素相加后的结果(1988+34=2022,此处仅作为讲解示例,实际操作中不允许这样执行),并以列表的形式输出([2, 0, 2, 2])。

要求:

必须是在列表状态下进行操作,不能将列表中的元素重组为一个整数(如1988)与加和元素进行计算。

解题思路:

将加和元素拆分成列表,然后从后往前,按照加法计算公式,与列表中的元素对应相加,若大于等于10则进1,并将大于10的部分存储在结果列表中。

这样,将结果列表逆序输出即可。

2、求树的直径

给定一棵二叉树,请找出其最长路径,并输出路径上的边的数量。如下所示,第一棵树的最长路径为4-2-1-3,长度为3。第二棵树的最长路径为8-6-4-2-5-7-9,长度为6

解题思路:

遍历所有父节点,统计其左右孩子的数量,并相加,即为该父节点对应的路径长度。依次递归调用即可。

其中需要注意的是,每一次遍历子节点,返回数值给父节点的时候,需要加1(对于父节点而言,自己本身也是其子节点的一个);并且,因为是统计路径,所以对于同时含有左右子节点的节点,要返回左右子节点中的最长路径,而不是该节点所包含的路径。


参考链接:

1猿辅导面试-算法类

#猿辅导##算法工程师##校招##面经#
全部评论
老哥是算法岗?
点赞 回复
分享
发布于 2020-05-31 18:59
左右孩子的数量相加还行,面试官没说你做的是错的吗
点赞 回复
分享
发布于 2020-07-25 09:46
联想
校招火热招聘中
官网直投

相关推荐

西安腾讯云智 后端Java 13K+2.4w+第一年房补1k
点赞 评论 收藏
转发
头像
04-19 22:37
团子 JAVA开发 30*15.5
点赞 评论 收藏
转发
3 19 评论
分享
牛客网
牛客企业服务