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

子数组最大乘积

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

 * 
 * @param arr double浮点型一维数组 
 * @return double浮点型
 */
function maxProduct( arr ) {
    // write code here
    //动态规划
    let len = arr.length;
    let res1 = new Array(len),res2 = new Array(len);
    let max = arr[0];
    res1[0] = arr[0],res2[0] = arr[0];
    for(let i = 1;i < len;i++){
        if(arr[i] > 0){
            res1[i] = Math.max(arr[i],res1[i - 1] * arr[i]);
            res2[i] = Math.min(arr[i],res2[i - 1] * arr[i]);
        }else{
            res1[i] = Math.max(arr[i],res2[i - 1] * arr[i]);
            res2[i] = Math.min(arr[i],res1[i - 1] * arr[i]);
        }
        max = Math.max(max,res1[i])
    }
    return max;
}
module.exports = {
    maxProduct : maxProduct
};

alt

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务