7.23小红书题三题解

刚看LeeCode 恍然大悟 ,解法同 1746:经过一次操作后的最大子数组 状态DP

笔者使用 便利+贪心 超时,现在马后炮补一篇题解。

对于每一次查询

输入有:

len: 数组长度

x:替换的数字

nums :输入的数组

dp[i][0]表示到i为止,未使用替换得到的最大子数组和,

dp[i][1]表示到i为止,使用过一次替换后得到的最大子数组和

dp[i][0]=math.max(dp[i-1][0]+nums[i],nums[i])

dp[i][1]=math.max(dp[i-1][1]+nums[i],nums[i-1][0]+x)

res=Mathmax(math.max(dp[i][0],dp[i][1]),res)

而且应该使用滚动变量优化,在读入数组的时候就进行计算。

时间复杂度O(n)

空间复杂度O(1)

如有错误,还请指正

#小红书信息集散地#
全部评论
dp[i][1]=math.max(dp[i-1][1]+nums[i],dp[i-1][0]+x)
1 回复 分享
发布于 2023-07-23 23:03 广东
点赞 回复 分享
发布于 2023-07-24 21:42 陕西

相关推荐

2024-12-07 21:21
东北大学 Java
点赞 评论 收藏
分享
🔌插電的小米大冰箱:很喜欢放牛,因为牛不会在我翻过第四座山后跟我说第一座山的草好吃
点赞 评论 收藏
分享
评论
8
28
分享
牛客网
牛客企业服务