美团笔试8.13

有大佬ac了第四题吗😥
提供下第3,4,5题目的python代码:(1,2题没有存在本地ide)

加一个魔法外卖的代码..:
arr = [100, 101, 102, 103, 104, 105]
t = 5
arr.sort()
magic = 0
cur_time = 0
for order in arr:
    if order-t>=cur_time:
        cur_time += t
    else:
        magic += 1
print(magic)

第三题
arr = [1,2,3,4]
ret = deque()
len_cnt = 0

for val in arr[::-1]:
    ret.appendleft(val)
    if len_cnt >= 2:
        val1 = ret.pop()
        val2 = ret.pop()
        ret.appendleft(val1)
        ret.appendleft(val2)
    len_cnt += 1
print(ret)
res = " ".join(list(map(str,ret)))
print(res)

第四题 (只过了91%)
arr = [4,2,2,2,2]
n = 5
index = defaultdict(list)
count = 0
for id,val in enumerate(arr):
    index[val].append(id)
for i in range(n-2):
    for j in range(i+1,n-1):
        ak = 3*arr[j]-arr[i]
        if ak in index:
            possible = index[ak]
            for idx in possible:
                if idx>j: count+=1
print(count)

第五题
class TreeNode:
    def __init__(self,val=None):
        self.val = val
        self.left = None
        self.right = None

nodes = [5, 7, 8]
TreeList = []
root = TreeNode(nodes[0])
TreeList.append(root)
#创建二叉树
for i,node in enumerate(nodes[1:],2):
    pa = TreeList[i//2-1]
    if i%2==0:#左子树
        new_node = TreeNode(node)
        pa.left = new_node

    else:
        new_node = TreeNode(node)
        pa.right = new_node
    TreeList.append(new_node)

def solute(root):
    max_value = [0]
    def dfs(root,acc):
        if not root:
            max_value[0] = max(max_value[0],acc)
            return     
        acc += root.val
        dfs(root.left,acc)
        dfs(root.right,acc)
    dfs(root,0)
    print(max_value[0])

solute(root)





#美团笔试##美团##笔试#
全部评论
你可能超时了。思路基本是对的。 但可以考虑枚举j和k。 i由j产生。index(aj).append(j)。此时的j代表新的j要找到i。 每次count+=len(index(ai))。
1 回复 分享
发布于 2022-08-13 18:11
第四道题AC不出来,时间来不及就停在64%😣
1 回复 分享
发布于 2022-08-13 18:07
请问有用c++写第三题的吗?
点赞 回复 分享
发布于 2022-08-13 19:12
t3这样写可以a吗,我用切片模拟a了82
点赞 回复 分享
发布于 2022-08-13 18:26
有测开方向的吗 2道题全a了
点赞 回复 分享
发布于 2022-08-13 18:11
今年hc还少,笔试有没有可能直接卡到4
点赞 回复 分享
发布于 2022-08-13 18:09
n, t = list(map(int, input().strip().split())) deadlines = list(map(int, input().strip().split())) cur = 0 ans = n for i in range(len(deadlines)):     if deadlines[i]>=cur+t:         ans-=1         cur+=t print(ans) 大佬帮我看看第一题这样模拟思路对么?
点赞 回复 分享
发布于 2022-08-13 18:08
前端1/2有机会吗
点赞 回复 分享
发布于 2022-08-13 18:05
java第四题90。。。
点赞 回复 分享
发布于 2022-08-13 18:04
我也4.91,能有机会吗😥感觉应该很多5的
点赞 回复 分享
发布于 2022-08-13 18:04
第四题剪枝最后想到可以用hash装第三个数,这样子可以只算不同情况。不够时间不过了没写,只知道可行性怎么样
点赞 回复 分享
发布于 2022-08-13 18:03
mark
点赞 回复 分享
发布于 2022-08-13 18:03

相关推荐

群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
评论
2
17
分享

创作者周榜

更多
牛客网
牛客企业服务