拼多多笔试

最后一题的照片,小伙伴们有么,,,最好题输入输出都有的,谢谢#拼多多##笔试题目#
全部评论
点赞 回复 分享
发布于 2019-07-28 19:58
Python复盘http://www.twistedwg.com/2019/07/29/algorithm_1.html
点赞 回复 分享
发布于 2019-07-29 16:46
经过和lz等本讨论帖等人的讨论,完善了下思路,对于长度相同的情况没必要去重,只需增加一个长度的判断,放python代码如下,欢迎纠错 import sys line = sys.stdin.readline().strip() while line: line = sys.stdin.readline().strip() L = list(map(int, line.split())) line = sys.stdin.readline().strip() W = list(map(int, line.split())) n = len(L) arr = [(l, w) for (l, w) in zip(L, W)] arr = sorted(arr, key=lambda x: x[0]) ls, ws = [0] * n, [0] * n ls[0], ws[0] = 1, arr[0][1] for i in range(1, n): ls[i], ws[i] = ls[i - 1], ws[i - 1] for j in range(i): if arr[i][1] * 7 >= ws[j] and arr[j][0] < arr[i][0]: if ls[j] + 1 > ls[i]: ls[i] = ls[j] + 1 ws[i] = ws[j] + arr[i][1] elif ls[j] + 1 == ls[i]: ws[i] = min(ws[j] + arr[i][1], ls[i]) print(ls[n - 1]) line = sys.stdin.readline().strip()
点赞 回复 分享
发布于 2019-07-29 11:35
不是dl,只ac10%,说一个思路,抛砖引玉,首先根据长度对积木排序,积木的长度和重量是绑定的,排序的话,注意不要改变其对应关系,python实现很简单,长度重量绑定成元组,然后对长度排序。用动态规划,lengths[i]表示[0, i]区间内最高的金字塔,weights[i]表示其对应重量,对于每一个i遍历j,j<i, 如果W[i] * 7 >= weights[i], lengths[i] = max(lengths[j] + 1, lengths[i]), 时间复杂度O(n^2)。当时没有做判断的一点是如果lengths[j] + 1 == lengths[i],应该要比较weights[j] + W[i]与当前weights[i]的大小,若小则更新。还有一点关于输入的疑问,会不会存在长度相同但重量不同的积木,如果有,想先做去重,只保留重量最轻的。
点赞 回复 分享
发布于 2019-07-28 20:28

相关推荐

不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
15
分享

创作者周榜

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