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 陕西

相关推荐

但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 13:54
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
评论
8
28
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务