京东8.27笔试

第一题就不说了,类似于求多维数组下标,打表都能AC了
着重说一下第二题,典型的DP题,状态转移方程为
其中要提前判断j, j-1, j-2是否越界
dp完成后,输出dp数组最后一行中最大的数即可
考试的时候手忙脚乱,代码写得有点乱,将就看吧(Python)
n = int(input())
dp = []
for i in range(n):
    dp.append(list(map(int, input().split())))

for i in range(1, len(dp)):
    for j in range(len(dp[i])):
        tmp = [j, j - 1, j - 2]
        tmp = list(filter(lambda x: x >= 0 and x < len(dp[i - 1]), tmp))
        lst = []
        for k in tmp:
            lst.append(dp[i-1][k])
        dp[i][j] = dp[i][j] + max(lst)
print(max(dp[-1]))


#笔试题目##京东#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-16 12:18
点赞 评论 收藏
分享
昨天 18:37
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

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