网易互娱第二批笔试 20200905(AI研究工程师)

个人感觉网易互娱笔试不是那种算法上的难,主要是考察编程能力,解决具体问题。
1,自动售货机(100%)
一开始写错了一个地方,就是应该在取出货到时候立刻记录当前所取货物的价格。写错不要紧,关键是这个错误在给的例子上还能通过。。。后来只能肉眼debug。这里有点浪费时间了。
这题主要就是用字典记录左右手状态,用栈模拟售货机。
while True:
    try:
        n,m = map(int,input().split())
        val = list(map(int,input().split()))
        stk = [[val[i]] for i in range(n)]
        for i in range(m):#PEOPLE
            ki=int(input())
            res = 0
            dic = {'left':0,'right':0}#money
            for t in range(ki):#OP
                op = list(input().split())#
                op0,op1 = op[0],op[1]
                if len(op) == 2:
                    res+= dic[op0]
                    dic[op0] = 0
                    continue
                    
                op2 = int(op[2])
                if op1=='take':
                    dic[op0] = stk[ op2-1 ][-1]
                    if len(stk[ op2-1 ])>1:
                        stk[ op2-1 ].pop()
                    continue
                if op1=='return':
                    stk[ op2-1 ].append(dic[op0])
                    dic[op0] = 0
                    continue
            if dic['left']!=0:
                res+=dic['left']
            if dic['right']!=0:
                res+=dic['right']
            print(res)
        
    except:
        break
2,动画绘制(0%)
这题我看完决定放最后写,最后写完测试用例可以通过,但是0%,主要是我写的代码没有考虑i,j,a,b复数的情况,也没时间写了。。菜啊。。。
代码还是放一下,可以不看,主要是以基底像素为基础,暴力循环判断需不需要修改。
while True:
    try:
        t = int(input())
        for _ in range(t):
            w,h = map(int,input().split())
            wh = []
            for i in range(h):
                wh.append(list(input()))
            p,q = map(int,input().split())
            pq = []
            for i in range(q):
                pq.append(list(input()))
            i,j,a,b = map(int,input().split())
            
            wh0 = [['.']*(w+1)]
            mat = [['.']*(w+1)]
            for iii in range(h):
                mat.append(['.']+wh[iii])
                wh0.append(['.']+wh[iii])
            res = 0
            while i<=h and j<=w:
                for ii in range(1,h+1):
                    for jj in range(1,w+1):
                        if i<=ii<i+q and j<=jj<j+p:#
                            if mat[ii][jj] == pq[ii-i][jj-j]:
                                continue
                            mat[ii][jj] = pq[ii-i][jj-j]
                            res+=1
                        elif mat[ii][jj] != wh0[ii][jj]:
                            mat[ii][jj] = wh0[ii][jj]
                            res+=1
                i+=a
                j+=b
            print(res)
                            
    except:
        break
3,迷宫探秘(90%)
还记得之前写过某场的笔试,有一道题也是迷宫,感觉很显然也是bfs,但就是ac不了,不知道为啥哦。。我没试dfs因为感觉求最短路的话,dfs需要全部遍历完,感觉复杂度可能更高。
这里主要用字典记录可达点,做bfs。
step = {0:(1,0),1:(-1,0),2:(0,-1),3:(0,1)}
while True:
    try:
        t = int(input())
        for _ in range(t):#ex
            n = int(input())
            x,y = 0,0
            dic = {}
            for st in range(n):#save
                dx,f = map(int,input().split())
                if f==1:
                    x+=step[dx][0]
                    y+=step[dx][1]
                    dic[(x,y)]=1

            #bfs
            res = 0
            if x==0 and y==0:
                print(0)
                continue
            queue = [(0,0)]
            dic[(0,0)]=0
            flag = 0
            while queue:
                lens = len(queue)
                res+=1
                for _ in range(lens):
                    a,b = queue.pop(0)
                    for aa,bb in {(1,0),(0,1),(-1,0),(0,-1)}:
                        l,r = a+aa,b+bb
                        if l==x and r==y:
                            flag = 1
                            break
                        elif ((l,r) in dic) and dic[(l,r)] == 1:
                            queue.append((l,r))
                            dic[(x,y)] = 0
                    if flag ==1:
                        break
                if flag ==1:
                    break
            print(res)
        
    except:
        break

作为小白记录一下笔试,代码写的不专业,轻轻喷。



#笔试题目##网易互娱#
全部评论
多少分有机会进入面试欸
点赞 回复 分享
发布于 2021-04-18 17:39
能不能详细讲一下题目是什么
点赞 回复 分享
发布于 2021-04-16 16:45
c早知道先第三题了。第二题死磕,最后还只有0.4
点赞 回复 分享
发布于 2020-09-05 18:08
?我不能python
点赞 回复 分享
发布于 2020-09-05 18:01
楼主我和你一模一样😂第二题感觉暴力没什么问题,不过一直TLE,最终也是1.9/3
点赞 回复 分享
发布于 2020-09-05 17:57
题目相同 难度爆炸 网易之前不是都考算法的吗? 都白准备了。。。
点赞 回复 分享
发布于 2020-09-05 17:57

相关推荐

头像
06-28 16:18
已编辑
北京体育大学 测试工程师
面试官周末在外边玩呢,然后约我一边玩,一边儿面试。基本上就是先对我英语能力做了一个考察,然后他做了一下部门的相关的介绍,以及对候选人能力的要求,基本上需要有一定的测试思维,然后沟通能力,然后就是要有开发能力,因为需求迭代的比较快要跟开发一起联动配合做一些自动化的实现,就是有一个相关的需求,能够实现相关的自动化用例需要的能力就是Python和JAVA,可能有一部分的c,c#。一开始是英文做了些介绍,说了1min,然后就是对我自动化能力的了解,然后组里边的一些自动化框架,然后接口自动化的了解,对Python能力的了解。这块儿就是又问了一些数据结构的相关的问题,贪心和动态规划的区别,比如说广度优先遍历和深度优先遍历的区别,然后出了一个场景题,如果我有一个是8byte的字符串,然后有4000个这样的字符串,那么你的bfs,队列要到多长?然后还有就是Python和c#的相关的结合,你可能要用什么样的方法?再就是问我对天津的看法,想不想来?我说之前我在京东的时候还想去天津的京东科技呢。然后面了面人家没要我。然后最后我反问。他是从0~1搭建自动化框架,还是你去完善自动化框架,然后他说正在招一个测试的leader去进行架构设计,然后找几个骨干的自动化测试工程师去实现相关的需求。你最主要的就是开发能力,要可以把一个相关的需求实现到自动化的场景这样子基本的能力要有。目前团队有10个人这样子,但是自动化测试工程师相对来说会少一些,所以说需求的基本上是自动化测试的工程师。然后我再问,可没可能涉及到一些大模型评测,然后一些大模型的微调之类的相关的工作。他说这块儿我们team里也有专门的算法评测团队,这块儿如果你想做的话也可以和他们一起去做,但是微调在现在的阶段是没有的。然后我又问了一下,还有技术面吗?他说如果通过了的话,有我的boss,我的领导再给你面一轮技术面完了再就是HR面一共30分钟面试公司:联想岗位:software&nbsp;QA&nbsp;engineer问题:如上
查看9道真题和解析
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务