视频讲解

子数组最大乘积

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

视频连接:https://www.bilibili.com/video/BV1kN411R7Vg/

#
# 
# @param arr double浮点型一维数组 
# @return double浮点型
#
class Solution:
    def maxProduct(self , arr ):
        n = len(arr)
        # 初始化 最大 最小 dp数组
        max_dp = [1.0]*n
        min_dp = [1.0]*n
        # 赋初值
        min_dp[0] = arr[0]
        max_dp[0] = arr[0]
        total = arr[0]
        for i in range(1, n):
            if arr[i] > 0:
                # 正*正 = 正
                max_dp[i] = max(arr[i], max_dp[i-1]*arr[i])
                # 负*正= 负
                min_dp[i] = min(arr[i], min_dp[i-1]*arr[i])
            else:
                # 负*负=正
                max_dp[i] = max(arr[i], min_dp[i-1]*arr[i])
                # 正*负=负
                min_dp[i] = min(arr[i], max_dp[i-1]*arr[i])
            total = max(total, max_dp[i])
        return total
全部评论

相关推荐

ResourceUtilization:差不多但是估计不够准确,一面没考虑到增长人口,另一方面也没考虑到能上大学的人数比例,不过我猜肯定只多不少
点赞 评论 收藏
分享
king122:实习经历可以重点写这里这里写的清晰一点,分点写。技能特长一般是放在上面的,而且你的实习经历不能只写实现了一些简单的接口,你要去写一些难点和亮点。甚至可以写一些数字指标上去,只要你能配合业务讲出来,根据我说的这些自己简单包装一下,面试应该会更多,至于笔试和八股,那就只能纯靠自己了,对项目包装感兴趣可以找我
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务