这个题只需要迭代更新余数是0-6的最大数组和的值就ok了。
dp[i]表示余数是i的最大数组中元素的和。初始化为0。
s=[10,20,2,29] # s=input() # s1=[ss%7 for ss in s] n=len(s) dp=[0]*7 dp[s[0]%7]=s[0] for i in range(1,n): dpc=dp.copy() for k in dpc: dp[(k+s[i])%7]=max(k+s[i],dp[(k+s[i])%7]) print(dp[0] if dp[0]!=0 else -1)
全部评论
(1) 回帖