美团笔试题求解

第一道题:算数

给n个数,原始情况下就是对这n个数进行加法计算。现在对该加法串进行m次操作,每次操作将其中一个加法换成加减乘除中的一种重新计算整组数的值,每次操作之间是相互独立互不影响的。

第一行输入整数n

接下来一行输入n个整数

接下来输入一个整数m

接下来输入2m个以空格分开的数字或者符号t1, o1, t2, o2 ... 其中t为数字,o为符号,表示第i次操作选取第ti个加号改变为oi。

输出一行m个数字分别表示每次操作的后的答案,四舍五入保留一位小数。

用例:

输入:

5

1 2 4 2 5

3

1 - 2 * 4 /

输出:

10.0 16.0 7.4

这题我的思路就是先计算两个数组,分别是前i项和和后i项和,这样用来直接在操作之后单独把受影响的相邻的两个数拿出来进行计算后,直接叠加上前后两个序列之和就行了,测试用例过了但是整体通过率只有百分之18,说是运行时错误也不知道是哪没处理好,求大佬看看

n = int(input())
num = list(map(int, input().split(' ')))
m = int(input())
op = input().split(' ')

s1 = [0] * n  #前i项和
s1[0] = num[0]
s2 = [0] * n  #后i项和
s2[-1] = num[-1]
res = []
for i in range(1, n):
    s1[i] = s1[i - 1] + num[i]
    s2[n - i - 1] = s2[n - i] + num[n - i - 1]

for i in range(m):
    index = int(op[i * 2])
    t = op[i * 2 + 1]
    temp = 0
    if index > 1:
        temp += s1[index - 2]
    if index < n - 1:
        temp += s2[index + 1]
	#受影响的两个数字单独拎出来计算就行了,前后直接叠加
    if t == '+':
        temp += num[index - 1] + num[index]
    elif t == '-':
        temp += num[index - 1] - num[index]
    elif t == '*':
        temp += num[index - 1] * num[index]
    else:
        temp += num[index - 1] / num[index]
    res.append('%.1f' % temp)

print(' '.join(res))

另外一道题目:收藏家

有n个收藏夹初始值都是0,每次操作如果输入0则把第xi个收藏夹的值改为yi,如果为1则输出第xi到第yi个收藏夹的总和。

输入:

第一行两个整数n和操作次数m

第二行m个整数代表操作输入op

第三行m个整数表示xi

第四行m个整数表示yi

输出:

对于每个op=1的情况输出一个答案

用例:

输入:

4 7

1 0 1 0 1 0 1

1 1 1 3 1 4 1

3 2 3 5 3 100 3

输出:

0 2 7 7

这题我没想到什么好办法,就直接按照题目意思暴力解决过了百分之82,超时了。求大佬给个好办法

#美团##美团笔试##春招##算法题#
全部评论
为什么第一题我只能过45%的测试量啊
4 回复 分享
发布于 2023-04-01 11:56 四川
第一题18%浪费了一小时啊,就感觉很简单,但是debug不出来
4 回复 分享
发布于 2023-04-01 12:03 广东
请问下老哥怎么看整体通过率啊,我只能看到测试样本的通过率
2 回复 分享
发布于 2023-04-01 11:29 北京
为啥我暴力全过了?
2 回复 分享
发布于 2023-04-01 11:29 北京
第一题我也是AC18%
2 回复 分享
发布于 2023-04-01 12:00 四川
提交了6次,前四次18%超时,后面改了一下,还是18%,显示作答错误😂
2 回复 分享
发布于 2023-04-01 12:01 湖南
线段树就好了
1 回复 分享
发布于 2023-04-01 11:26 四川
收藏夹我暴力直接百分百啊 语言cpp
1 回复 分享
发布于 2023-04-01 11:33 湖南
哥们 收藏夹为啥我暴力解 一直显示超时呀 你咋做的
1 回复 分享
发布于 2023-04-01 11:34 吉林
第二题排序,就是结果了
1 回复 分享
发布于 2023-04-01 13:09 湖南
老哥收藏夹怎么写的,我半天ac40%,分享一波啊
点赞 回复 分享
发布于 2023-04-01 11:27 江苏
收藏夹C模拟直接过
点赞 回复 分享
发布于 2023-04-01 11:47 河南
感觉今天题出的很简单 人生第一次ac 吓得我一再确认
点赞 回复 分享
发布于 2023-04-01 11:53 天津
收藏夹这题是树状数组的板子题。不过貌似数据不是很严,暴力+前缀和优化也可以过
点赞 回复 分享
发布于 2023-04-01 11:54 湖北
收藏夹就是模拟题,我用python超时,c++写一样的思路过了
点赞 回复 分享
发布于 2023-04-01 12:03 广东
python写第一题是不是有问题啊 一直18%
点赞 回复 分享
发布于 2023-04-01 12:03 江苏
收藏夹线段树过18%?听你们说暴力能全过?
点赞 回复 分享
发布于 2023-04-01 12:05 广东
第一题是不是没有四舍五入,我到最后发现了,但是改了也不行
点赞 回复 分享
发布于 2023-04-01 12:05 广东
我第一道刚开始18%,改来改去45%,这样有一部分分数吗,还是一分没有
点赞 回复 分享
发布于 2023-04-01 12:06 河南
我9%,我晕了,真的搞心态
点赞 回复 分享
发布于 2023-04-01 12:08 广东

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
点赞 评论 收藏
分享
Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
9 23 评论
分享
牛客网
牛客企业服务