当前位置: 首页> 财经> 产业 > 深圳网站开发公司有哪些_怎样下载软件到电脑桌面上_qq群引流推广网站_购买链接平台

深圳网站开发公司有哪些_怎样下载软件到电脑桌面上_qq群引流推广网站_购买链接平台

时间:2025/8/10 4:53:22来源:https://blog.csdn.net/weixin_43483381/article/details/142796816 浏览次数:0次
深圳网站开发公司有哪些_怎样下载软件到电脑桌面上_qq群引流推广网站_购买链接平台

在这里插入图片描述

1、心路历程

这道题最开始想到的做法是回溯,因为看起来遍历就可以做,但是又想到同时需要维护两个人的数据就有点懵了。后来提示说用动态规划做是OK的。

这道题最难的地方在于,需要把输赢建模成“净胜分”,这样就能把两个主体合并为一个主体去动态规划。在明白了这一点之后,5分钟就自己写出来了。

这道题的本质和hot100里那个 乘积最大子数组 需要区分正负数一样,这里也需要区分两个人来分别递推。

2、注意的点

1、注意当递推到第二个人手里时,需要求得是一个最小值而不是最大值。

3、解法 递归动态规划:

class Solution:def predictTheWinner(self, nums: List[int]) -> bool:n = len(nums)@cachedef dp(i, j, k): # i - j 区间的最大净胜值 k = 1代表先手者 否则是后手者if j - i == 0:if k == 1:return nums[i]else:return - nums[i]if k == 1:return max(nums[i] + dp(i+1, j, 0), nums[j] + dp(i, j-1, 0))else:return min(-nums[i] + dp(i+1, j, 1), - nums[j] + dp(i, j-1, 1))return dp(0, n-1, 1) >= 0
关键字:深圳网站开发公司有哪些_怎样下载软件到电脑桌面上_qq群引流推广网站_购买链接平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: