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

子数组最大乘积

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

#
# 
# @param arr double浮点型一维数组 
# @return double浮点型
#
class Solution:
    def maxProduct(self , arr ):
        # write code here
        #由于本题空间复杂度为O(1),故不能创建dp数组,保存状态即可
        maxP = arr[0] #最大乘积,初始化为数组第一个元素较合理
        state = 0 #只用一个变量保存状态即可
        for i in range(len(arr)):
            #当区间只有一个元素时,初始化State
            state = arr[i]
            maxP = max(maxP,state)
            for j in range(i+1,len(arr)):                
                #当区间有多个元素时,使用递归公式:dp[i][j] = dp[i][j-1]*arr[j]
                state = state*arr[j]
                maxP = max(maxP,state)             
        return maxP
全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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