题解 | #子数组最大乘积#

子数组最大乘积

http://www.nowcoder.com/practice/9c158345c867466293fc413cff570356

动态规划,思路同子数组最大乘积(全为正数)一样,dp[i][0]代表当前以arr[i]结尾的最大乘积正数,dp[i][1]为最小乘积负数。
转移方程:
1.当arr[i]>0时:
dp[i][0]=max(dp[i-1][0]arr[i],arr[i]),dp[i][1]=dp[i-1][1]arr[i].
2.当arr[i]==0,dp[i][0]=dp[i[1]=0.
3.当arr[i]<0时,dp[i][0]=dp[i-1][]arr[i].dp[i][1]=min(dp[i-1][0]arr[i]).
边界条件: dp[-1][0]=-1,dp[-1][1]=1,最后同步更新ans即可。

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
找到实习就改名4月17日下午更改:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务