zoukankan      html  css  js  c++  java
  • leetcode 152. Maximum Product Subarray

    题目

    求一个数组的最大子段乘积

    思路以及代码

    先看下面代码,看完了以后再讲思路233

    class Solution {
    public:
        
        int maxProduct(vector<int>& nums) {
            int len = nums.size();
            if(len == 0) return {};
            if(len == 1) return {nums[0]};
            int pre = 1, last = 1;
            int res = nums[0];
            for(int i=0; i<len; i++) {
                pre *= nums[i];
                last *= nums[len-i-1];
                res = max(res, max(pre,last));
                pre = (pre == 0) ? 1 : pre;
                last = (last == 0) ? 1 : last;
            }
            return res;
        } 
    };
    

    由于一个数组可能全是正数,那我们直接求所有的数的乘积即为结果
    如果一个数组有负数,我们假设下面这种形式 aBcD,大写为负数,那么 最优秀解可能是 aBcD
    如果是下面这种形式AbCdE 这样最优解可能就是AbCd 或者 bCdE

  • 相关阅读:
    ES6中的基础语法
    let和const、var
    iframe框架
    ajax
    面试题
    移动端的点击延迟事件
    移动端如何设置字体
    swiper插件以及简介
    第十二章 systemctl管理脚本
    第十一章 awk命令
  • 原文地址:https://www.cnblogs.com/Draymonder/p/11047722.html
Copyright © 2011-2022 走看看