Seeker的奇妙求职历险(网易有道二面)

前言

8月24日早上10点,我进行了网易有道的二面。
之前看牛客上很多人都是一面完直接二面,而我等了大概有4天,所以我想可能是大神优先二面,然后挂了之后再让下面一批陪跑吧。
这次面试前面十几分钟就聊了聊项目,然后问我怎么优化的,做了哪些工作,之后就说做题目吧,然后给我出了三道算法题。
第一题还算比较简单,第二题的话没能在面试的时候想明白,第三题应该算是一道场景题。

走格子

给出m*n的方格,计算从左上角走到右下角有几种路径。

经典的走格子问题,写完之后问我能不能优化一下,我说那我考虑采用滚动数组的方式,从后向前更新,然后又让我写了一下。

奇数偶数

给出一个数字n,如果n是偶数就除以2,如果是奇数就选择+1或者-1,求最少几次能够使n变成1。

面试的时候没想明白,我说最少几次一般要么是贪心要么是动态规划,这道题我想用贪心,每次奇数-1,这样是不是最快。
然后面试官让我自己写几个数再想想。
举了几个例子,没发现+1反而变快的,所以就没想到,然后面试官说,你还是认为-1最快是吧,那我们换一题吧。

下来之后想明白了,因为偶数没得选,所以先初始化偶数,依赖于dp[i/2],然后初始化奇数dp[i] = min(dp[i-1],dp[i+1])+1,至于为什么+1会比-1快,考虑一下15的情况,变成16一共是5次,变成14是6次,这是由于16刚好是2的4次方,所以下降速度更快。
看来想在面试的短短几分钟之内想明白还是有一点难。

贪吃蛇

给出一个n*n的格子,设计一个贪吃蛇的数据结构,满足以下两个要求:

  1. 不能碰到边界或者自己
  2. 吃到苹果的时候增加自己的长度

一开始我说用队列来保存自己的长度和经过的格子,因为每次移动的时候都是队列头出,队列尾进。
然后面试官就让我实现一下。
写到吃苹果的时候突然发现,吃了苹果尾部要增加一格,所以还需要在队列头也能插入,所以就改成了Deque
然后面试官让我想想有没有什么数据结构能够直接实现队列这个特性。
我说linkedHashMap,可以迅速判断是否经过这个点,也可以根据插入顺序排序,每次移除头结点。
面试官说,太复杂了,再想想简单的。
反正最后没想出来。

结束之后我问他,应该用什么数据结构,他说用LinkedList,那我说可是我写的Deque就是用LinkedList实现的啊,他说还要考虑的遍历的情况,那我说好吧。

后记

结束之后,我问面试官评价一下,然后他说”我感觉还不错,但是每个人都有自己的特质,不用强求“。
这是什么意思?意思是说虽然你还行,但是有很多比你强的人,所以你也别太灰心,是这个意思嘛?
我好难呀,希望下午雷火的hr面能顺利一些。
都第五轮了,应该是hr面了吧。


在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值