友塔笔试20/4/14

第一题,将矩阵顺时针旋转90度。
应该是个经典题型吧,考的时候盘了会儿逻辑,就是像剥洋葱一样一层一层转,(i,j)转到(j,n-1-i)等,时间复杂度n。
最后卡在测试通过率90%搞不定了,本地试了矩阵边长为1,2,3,4都没错,遂跳到下一题。
第二题,宠物有4个属性,攻防生命和评分,评分根据攻防生命得到,为攻*攻击系数+防*防御系数+生命*生命系数得到。
给2个宠物的所有属性,给第3个宠物的攻防生命,求第3个宠物评分。得不出就输出0。
回忆起可用大一学的线性代数(大概吧,要不就是高数)的矩阵那块知识解决。
大概流程就是将3宠物属性放到一个3*4矩阵里,先将2,3行的一个属性通过与第1行四则运算变成0,再试着将第3行与第2行运算将一个属性变成0,可以的话评分就求出来了,否则输出0.
如:
宠物1属性1,1,1,3,宠物2属性2,4,1,7,给宠物3的攻防生命:3,7,1,求评分:
/1 1 1 3/        /1 1 1 3/        /1 1 1 3/
/2 4 1 7/   =>/1 3 0 4/ =>   /1 3 0 4/
/3 7 1   /       /2 6 0   /        /1 3  0  /
后来想到以前算的过程中经常会用到分数,会出问题,于是将算法改良成:
     /6 6 6 18/
=>/6 12 3 21/
     /6 14 2    /
记住四则运算的运算过程,最后逆推得到结果。
最后只跑通60%,感觉这个思路应该没问题呀,哭。
最后几分钟瞟了一眼第三题。
第三题,m*n矩阵作为迷宫,每个点的值代表权重,为0代表此点走不通,只能上下左右走。
从(0,0)走到(m,n),权重值最小为多少。
没做到这道题,我临时想到的思路是,用递归,一个参数用list或Set等存路径,一个参数代表到此点后的权重值。
方向是向i和j变大的方向(起点在左上,终点在右下,也就是说向右和下的方向走),除非路不通才会绕路。
如果走到终点了,返回此时权重值,否则返回0.
在过程中的点会判断递归的两个结果(右和下两个点都可走)比大小,或者只有一个结果则直接返回。
第四题没看到。
总体难度我不知道该说难还是不难,照比快手那次笔试肯定是难一些,但友塔的“难”又不是我们平时笔试的那种“难”,很难形容。
逻辑上不难,也就是说不太考验逻辑,不需要你去思考一些巧妙算法,看完题你能很快想到解决的思路。
但会考一些远古的知识点,回忆起来很费劲,而且本人两道题都没全测试通过。
#友塔游戏2020春招正在进行中##友塔游戏##笔试题目#
全部评论
刚做完,第二题和你一模一样,早知道来牛客搜一下了🤣
1 回复 分享
发布于 2020-04-15 17:30
错过完美世界笔试了,哭😫
点赞 回复 分享
发布于 2020-04-14 21:58
第二题列方程更好理解吧,第三题最短路
点赞 回复 分享
发布于 2020-04-14 22:24
第二题感觉是判断第三个向量能否用前两个向量表示吧,就比如样例[1,1,1]和[2,4,1],问[3,7,1]是否为前两个向量的线性组合。按照这个思路的话...还真没写过这方面的代码,怎么判断,或许可以暴力尝试一下参数
点赞 回复 分享
发布于 2020-04-15 00:32
LZ面试了吗,我面完两天了没消息。。。难道是挂了。。?
点赞 回复 分享
发布于 2020-04-15 19:37
面试可难了
点赞 回复 分享
发布于 2020-04-15 20:04
矩阵旋转那个,可以先转置然后再交换列把
点赞 回复 分享
发布于 2020-04-16 17:34
一会考试
点赞 回复 分享
发布于 2024-02-28 19:01 黑龙江

相关推荐

点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

更多
牛客网
牛客企业服务