3-22笔试记录 网易互娱(2.1/3)&360java方向(2/2)&美团第三场(2.2/3)

网易互娱

(1)第一题题目大意是每天可以选一个股票买,卖出之前买的,直接贪心找前一天买哪一个可以在今天赚的最多,亏钱前一天就不买

n, m, k = map(int, input().split())
ans = [[-1,-1] for _ in range(n)]
pre = []
from math import inf
for i in range(n):
    now = list(map(float, input().split()))
    if pre:
        mxd = k
        mxi = -1
        for j in range(m):
            if k / pre[j] * now[j] > mxd:
                mxd = k / pre[j] * now[j]
                mxi = j
        # print(mxd, mxi)
        k = mxd
        ans[i - 1][1] = mxi
        ans[i][0] = mxi
    pre = now
print(k)
for i in range(n):
    print(ans[i][0], ans[i][1])

(2)根据题意模拟就好了,问题是他这个题意不明确,看样例才知道只每次移动只能消一次

# 0上 1左 2下 3右
dx = [-1, 0, 1, 0]
dy = [0, -1, 0, 1]
for _ in range(int(input())):
    c = list(map(int, input().split()))
    n, m = map(int, input().split())
    g = [list(map(int, input().split())) for _ in range(n)]
    for i in range(1, len(c)):
        k = c[i]
        if k == 0: # 上
            st = set()
            for x in range(n):
                for y in range(m):
                    if not g[x][y]: continue
                    px, py = x, y
                    X = px + dx[k]
                    Y = py + dy[k]
                    while X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == 0:
                        g[X][Y], g[px][py] = g[px][py], g[X][Y]                       
                        px = X
                        py = Y
                        X = px + dx[k]
                        Y = py + dy[k]
                    if X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == g[px][py] and (X, Y) not in st:
                        g[px][py] = 0
                        g[X][Y] *= 2
                        st.add((X, Y))                       
        if k == 1: # 左
            st = set()
            for y in range(m):
                for x in range(n):
                    if not g[x][y]: continue
                    px, py = x, y
                    X = px + dx[k]
                    Y = py + dy[k]
                    while X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == 0:
                        g[X][Y], g[px][py] = g[px][py], g[X][Y]                       
                        px = X
                        py = Y
                        X = px + dx[k]
                        Y = py + dy[k]
                    if X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == g[px][py] and (X, Y) not in st:
                        g[px][py] = 0
                        g[X][Y] *= 2 
                        st.add((X, Y)) 
        if k == 2: # 下
            st = set()
            for x in range(n - 1, -1, -1):
                for y in range(m):
                    if not g[x][y]: continue
                    px, py = x, y
                    X = px + dx[k]
                    Y = py + dy[k]
                    while X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == 0:
                        g[X][Y], g[px][py] = g[px][py], g[X][Y]                       
                        px = X
                        py = Y
                        X = px + dx[k]
                        Y = py + dy[k]
                    if X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == g[px][py] and (X, Y) not in st:
                        g[px][py] = 0
                        g[X][Y] *= 2  
                        st.add((X, Y))
        if k == 3: # 右
            st = set()
            for y in range(m - 1, -1, -1):
                for x in range(n):
                    if not g[x][y]: continue
                    px, py = x, y
                    X = px + dx[k]
                    Y = py + dy[k]
                    while X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == 0:
                        g[X][Y], g[px][py] = g[px][py], g[X][Y]                       
                        px = X
                        py = Y
                        X = px + dx[k]
                        Y = py + dy[k]
                    if X >= 0 and Y >= 0 and X < n and Y < m and g[X][Y] == g[px][py] and (X, Y) not in st:
                        g[px][py] = 0
                        g[X][Y] *= 2  
                        st.add((X, Y))
    # print(*g, sep="\n")
    for i in range(n):
        print(*g[i])

(3)写这题还有两个小时,我一看以为只能用exgcd,当时相的是枚举两个,然后exgcd求另外两个,然后想了一下想不起来怎么写了,然后蒙了-1和全0的样例下机了。。。实际上这题还可以用map存两个,再枚举两个,还是O(n^2)的复杂度,对自己无语了

360

我先做的选择题,只能说无敌了,像是祖传的题库,什么jdbc,statement,execute。。。

然后是算法题

(1)第一题题意是每天给你一个数,然后从1开始,当你解锁i之后你才能继续解锁i+1,然后问所有数字解锁的时间,其实就是求mex,直接模拟就行了

n = int(input())
a = list(map(int, input().split()))
st = set()
mex = 0
ans = [0] * n
for i, x in enumerate(a,start = 1):
    st.add(x)
    while mex + 1 in st:
        ans[mex] = i
        mex += 1
print(*ans)

(2)第二题是按顺序给你一堆坐标,每当加一个坐标,如果这个坐标8个方向上有其他坐标,那么可以得到的总价值是这个连接的连通块数量的平方,然后问你每一次加坐标时的总价值是多少,连通块大小很自然想到并查集,但是因为是坐标,只能哈希表维护并查集感觉不太好,不知道正解是怎么样的

'''
八个方向
并查集
'''
dx = [1,1,0,-1,-1,-1,0,1]
dy = [0,1,1,1,0,-1,-1,-1]
n = int(input())
a = []
for i in range(n):
    a.append(tuple(map(int, input().split())))
ans = 0
from collections import defaultdict
f = defaultdict(tuple)
mp = defaultdict(int)
def find(x):
    if x in f:
        if x != f[x]:
            f[x] = find(f[x])
    else:
        f[x] = x
    return f[x]
def union(x, y):
    x = find(x)
    y = find(y)
    f[y] = x
sst = set()
for u, v in a:
    res = 0
    st = set()
    sst.add((u, v))
    for i in range(8):
        x = u + dx[i]
        y = v + dy[i]
        if (x, y) in sst:
            st.add(find((x, y)))
    for x, y in st:
        # print((u, v), x, y, mp[(x, y)])
        ans -= mp[(x, y)] ** 2
        res += mp[(x, y)]
        union((u, v), (x, y))
    # print(ans, res)
    ans += (res + 1) ** 2
    mp[find((u,v))] = (res + 1)
    print(ans)

美团第三场

我申请的岗位已经结束了,但是还是收到了笔试,不知道什么意思,而且听说美团根本不看笔试,然后就想着随便乱写了

选择题很多ai相关的,完全看不懂,乱选根本没有心里负担

(1)第一题忘了,总之很简单

s = input()
n = len(s)
ans = 0
key = "AHIMOTUVWXY"
for l in range(n):
    if s[l] not in key:continue
    for r in range(l + 2, n + 1):
        if s[r - 1] not in key:break
        if s[l:r] == s[l:r][::-1]:
            ans += 1
print(ans)

(2)第二题暴力,没想到过了,懒得证明为啥复杂度可以了

for _ in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    ans = n
    for i in range(1, n - 1):
        l = i - 1
        r = i + 1
        gt = 0
        lt = 0
        while l >= 0 and r < n:
            if a[r] > a[i] > a[l] or a[r] < a[i] < a[l]:
                if gt == lt:
                    ans += 1
            else:
                if a[l] > a[i]:
                    gt += 1
                else:
                    lt += 1
                if gt == lt:
                    ans += 1
            l -= 1
            r += 1
    print(ans)

(3)懒得看了,粘了一个暴力,过了20%

n, k = map(int, input().split())
s = input()
ans = [0] * n
mp = [k]
for i in s:
    if i == 'L':
        for j in range(len(mp)): 
            mp[j] -= 1
            mp[j] = max(1, mp[j])
    elif i == 'R':
        for j in range(len(mp)): 
            mp[j] += 1
            mp[j] = min(n, mp[j])
    else:
        st = set()
        for j in range(len(mp)):
            k = mp[j] - 1
            k = max(1, k)
            st.add(k)
        for j in range(len(mp)):
            k = mp[j] + 1
            k = min(n, k)
            st.add(k)
        mp = list(st.copy())
for i in mp:
    ans[i - 1] = 1
print("".join(str(c) for c in ans))

全部评论
笔试不会可以百度吗,佬
点赞 回复 分享
发布于 03-23 19:01 河南

相关推荐

&nbsp;bg211本硕,无实习无实际项目,只有导师接的几个无关痛痒的项目。简历全是自己在网上找的项目。投的比较晚,因为某些毕设的事情。三月下旬开始投,4月才开始大规模投。字节一战是学校师兄推的部门,日常无转正,聊的还不错,但是算法没手撕出来&nbsp;寄了二战腾讯全栈,问了一堆项目里的分库分表的操作,八股里面压根没有,但我项目做的很简单只分了表没分库,对方知道后瞬间没兴趣了。30分钟草草结束。之后腾讯再也没有捞我。之后开始狂做笔试。第一次做阿里系笔试看到那与力扣hot100风格完全不同的题目时直接懵了。本科上机考就烂,洛谷本科刷了2年一上机还是不会。本来觉得阿里系都寄了,直到做到蚂蚁的笔试轻松a出2.5道才又有了信心。后续笔试目标全都是两道。时间来到四月中旬,字节二面,部门是国际商业化,千万留意这个部门,面试官你会的不问,不会的揪着你问,挂就算了,面了这部门后,字节再也没有约面。美团笔试只做了一道还是约面了,面试官人很好很有耐心,问的都是常规八股,我答的并不好还是耐心回答还教我,我连mysql的基本命令都写不出来他还是让我过了。二面问的东西也是很常规&nbsp;但我也没答好,最后果不其然寄了。后续痛定思痛,苦练mysql和背八股到滚瓜烂熟。蚂蚁约了个面试,但面试官既不开摄像头,说话也吞吞吐吐,磨洋工耗时间,35分钟一到就直接结束。百度真是个很幽默的公司,投了一直不理我,然后简历挂了。突然有天来个电话,说给我找到个合适的岗位。面试使用的软件叫如流,巨卡,面试官那边巨吵,面试时面试官全程无互动。面完之后跟我说不匹配,想找c++做存储不想找java。那你早不说非要浪费我50分钟。后续约面越来越少,只有阿里云了。一面常规八股,二面问了些八股加聊天,三面是最离谱的,问了些基本不常见的问题,比如java是怎么实现对lamba表达式的支持的,分析两种动态代理方式的执行流程,其中fastclass有什么用。。。然后手撕随手给了个力扣简单题存在重复元素2,哈系表秒了后要求给出不使用的优化解法,直接使用滑动窗口做出来。后面对我评价是有广度缺乏深度。提心吊胆一个周六后周日约了hr面。hr面完后泡了两个星期多池子,然后被其他部门捞了,加面一次后晚上发了意向书。同意了。面完阿里云之后,面了腾讯云智,做完笔试秒约面试,一面八股过,二面莫名其妙聊了些奇奇怪怪的问题,和面试官似乎不太对的上电波,但还是秒约二面,三面真是神奇,由于部门不使用java只用go和Python,三面面试官不太懂java,问我什么是reentrantlock和condition,也不太懂c和c++&nbsp;,我平常除开写些脚本基本不用Python。全程鸡同鸭讲,建议兄弟们选部门还是别随意选没有你擅长语言的,三面寄了是真的折磨。滴滴秋储第一场面的不好,但还是约了二面,等了一个小时当天二面来了&nbsp;常规八股,之后反问环节也介绍部门了。第二天秒拒。后续做了些小厂笔试和招商银行信用卡中心的笔试和行测。想着找不到大厂就先去小厂再秋招。然后就收到了阿里云的电话。投了简历没有任何反应的公司有京东,阿里灵犀,阿里大文娱,B站,腾讯音乐,shein,momenta,顺丰做了个测评,oppo笔试后就卡住了,高德,贝壳找房,荣耀,小米,阿里飞猪,快手简历挂。笔试挂的有淘天,作业帮,拼多多,饿了么,美团没a出完整一道还是约面了,米哈游作出2道照样,虾皮也是,阿里国际,得物&nbsp;。网易互娱投的是java岗面的是c++,面试时候拒了。暑期奇妙之旅,谁来谁挨虐。个中滋味,只有自己知道。
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务