美团 3.13笔试AC

1.
n,m=map(int,input().split())
path,nums=[],[]
res=[[0]*n for _ in range(m)]
for i in range(n):
    path=list(map(int,input().split()))
    for j in range(m):
        res[j][i]=path[j]
for i in range(m):    
    for j in range(n):
        if j<n-1:
            print(res[i][j],end=' ')
        else:
            print(res[i][j])
2.
s=input()
n=len(s)
left,right=0,0
res=[]
while right<n:
    while  right<n and not s[right].isdigit():
        right+=1
    left=right
    while right<n and s[right].isdigit():
        right+=1
    string=s[left:right]
    cur=0
    if string:
        for i in string:
            cur=cur*10+int(i)
        res.append(cur)
res.sort()
for i in res:
    print(i)

3.
n,k=map(int,input().split())
nums=list(map(int,input().split()))
left,right=0,0
end=n-k+1
dic={}
res=[]
count=0
while right<n:
    num1=nums[right]
    dic[num1]=dic.get(num1,0)+1
    right+=1
    if right-left==k:
        counter=sorted(dic.items(),key=lambda k:(k[1],-k[0]))
        num2=nums[left]
        dic[num2]-=1
        left+=1
        print(counter[-1][0])
        count+=1
    if count==end:
        break
4,5只会骗分。。。比秋招做的还烂



#笔试题目#
全部评论
蹲一个大佬讲讲第四题orz
2 回复 分享
发布于 2021-03-13 18:16
100 100 82 18 18,这最后两道图论题我调了一个多小时都没过,不知道错在哪😣
1 回复 分享
发布于 2021-03-13 18:06
100 % 100% 82% 0.18 0 第二题少写一个等号,一直找不到错误,搞了一个小时心态崩了。最后一分钟看到过了。 第二题可能直接用list<Sting>,然后排序list ,排序方法是。 第三题用滑动窗口,然后用hashmap计数。 (优化方法,用m记录众数次数,如果下一个数和众数相同,那么m+1.不同m-1,直到m==0重新算众数)
1 回复 分享
发布于 2021-03-13 18:13
请问有没有今天下午美团笔试是4道编程题,3道多选题的?
1 回复 分享
发布于 2021-03-13 18:15
最后20分钟发现还有第5题😅
1 回复 分享
发布于 2021-03-13 18:20
1 1 0.7 0.2 0.8 第 3 题感觉要滑动窗口加建树  第 4 题调了半天没过,白嫖 然后最后30分钟想到思路了没写出来 第 5 题没用缓存只过了0.8,难顶  时间都去做第4题了 ```python from collections import defaultdict n,m = list(map(int,input().strip().split(' &(5528)#39;))) weigh = list(map(int,input().strip().split(' &(5528)#39;))) weigh = [0]+weigh memo = defaultdict(list) for i in range(m):     x1,x2= list(map(int,input().strip().split(' &(5528)#39;)))     memo[x1].append(x2)     memo[x2].append(x1) res =[0] memodict = {} def dfs(node,lengh):     if node in memodict:         return memodict[node]     ans = 1     for i in memo[node]:         if weigh[i]<weigh[node]:             tmp = dfs(i,lengh+1)+1             ans = max(ans,tmp)     memodict[node] = ans     return ans for i in range(1,n+1):     res = max(dfs(i,1),res) print(res[0]) ``` 这是考完写的有缓存版
1 回复 分享
发布于 2021-03-13 19:01
1,2,5AC 3 90% 4  18%,应该还行吧
1 回复 分享
发布于 2021-03-13 19:09
第四题树形dp,dp维护最大权值和,dm维护满足条件下的路径上的最小权值。 0表示不选该点,1表示选。
1 回复 分享
发布于 2021-03-13 19:14
100 64 73 18 18 能给面试机会吗?
1 回复 分享
发布于 2021-03-13 19:49
楼主你投的什么岗
1 回复 分享
发布于 2021-03-13 23:28
弱弱问一下那个,第三题中 counter = sorted(dic.items(), key=lambda k: (k[1], -k[0])) 这个lambda k 中-k[0] 有什么作用
1 回复 分享
发布于 2021-03-14 15:57
54分
点赞 回复 分享
发布于 2021-03-13 17:58
100% 54% 27% 0 0 自己debug太慢了,后面俩都没好好看
点赞 回复 分享
发布于 2021-03-13 18:01
第三题可以抽象成滑动窗口求众数
点赞 回复 分享
发布于 2021-03-13 18:03
100 100 82 0 18,第三题从45优化到82花了我半个小时,第四题都没怎么看,然后突然想起还有一个第五道。。。不知道为什么要这么设置题目
点赞 回复 分享
发布于 2021-03-13 18:04
测开 100,100,82,18。第五题写用例的不知道怎么判分
点赞 回复 分享
发布于 2021-03-13 18:12
1 0.91 0.91 0.18 1第二搞不懂问题出在哪😅,第三题暴力用map存计数超市
点赞 回复 分享
发布于 2021-03-13 18:24
100 45 91 18 27 第二题最后才发现可能爆int😅
点赞 回复 分享
发布于 2021-03-13 18:27
我裂开了,100%,45%(没考虑大数),82%(超时),0%(做不了),0%(做不来),我感觉我凉透了
点赞 回复 分享
发布于 2021-03-13 18:29
100,70,70,18,18
点赞 回复 分享
发布于 2021-03-13 18:30

相关推荐

评论
11
31
分享
牛客网
牛客企业服务