京东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]))


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

相关推荐

点赞 评论 收藏
转发
3 2 评论
分享
牛客网
牛客企业服务