小米笔试第一题,python3,DP

import sys
lines = sys.stdin.readline()
l = list(map(int, lines.strip().split()))
left_num = sum(l)
dp = [[0, ] * len(l) for _ in range(len(l))]

for i in range(len(l)):
if len(l) % 2 == 0:
dp[i][i] = -l[i]
else:
dp[i][i] = l[i]
for s in range(1, len(l)):
for i in range(len(l)-s):
j = i+s
dp[i][j] = max(dp[i][i] - dp[i+1][j], dp[j][j] - dp[i][j-1])

# print(dp)
if len(l) % 2 == 1:
print("Yes") if dp[0][len(l)-1] >= 0 else print("No")
if len(l) % 2 == 0:
print("Yes") if dp[0][len(l)-1] <= 0 else print("Yes")

#笔试题目##Python##小米##题解#
全部评论
😥这个要用dp吗
点赞 回复 分享
发布于 2019-09-06 20:24
第二题怎么写
点赞 回复 分享
发布于 2019-09-06 20:25
我Java回溯没写完时间就到了
点赞 回复 分享
发布于 2019-09-06 20:28
第一题是判断回文吗
点赞 回复 分享
发布于 2019-09-06 20:31
你们这个题题目是啥啊,感觉题不一样啊
点赞 回复 分享
发布于 2019-09-06 20:35
后台开发嘛?
点赞 回复 分享
发布于 2019-09-06 20:40
第二题的源码 方便贴一下吗? 感谢啊~
点赞 回复 分享
发布于 2019-09-06 20:51
大佬你这报错吧 我试了一下
点赞 回复 分享
发布于 2019-09-06 20:58
这个dp代表啥意思呀
点赞 回复 分享
发布于 2019-09-06 21:09
dp[i][j]代表什么意思呀
点赞 回复 分享
发布于 2019-09-06 21:10
点赞 回复 分享
发布于 2019-09-06 21:11

相关推荐

不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
2 3 评论
分享
牛客网
牛客企业服务