Leetcode 152. Maximum Product Subarray

SPICE模型入门到精通 文章目录前言一、SPICE是什么?二、1. 前言 由于笔者的毕业设计与功率半导体器件建模相关,需要用到SPICE软件来建模,在这记录一下从零开始的SPICE学习历程~ 一、SPICE是什么? 电子产品的设计一般先从功能框图开始,然后细化到原理图,还要经过很调试验证过程,最终才能完成。调试和验证的过程复杂而繁琐,在设计集成电路时更是如此,在制造之前急需验证集成电路的功能。 根据电路理论,人们可以建立起节点方程和回路方程,通过解这些方程组成的方程组就可以得到结果,也就是说可以通过计算来获得电路的工作情况。但 阅读详情

Leetcode 152. Maximum Product Subarray

source url

题目描述

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.

输入:数组
输出:乘积最大子数组

思路

动态规划:如题目所示,输入数组为整型,即只需考虑两个特殊点,遇到负数的时候以及遇到0的时候。考虑两个数组,p[i]表示以下标i结尾的子数组最大的正乘积,n[i]表示以下标i结尾的子数组最小的负乘积。
即p[i]>=0,n[i]<=0
存在下列状态转移方程
状态转移方程:

p[i]={p[i−1]∗nums[i]n[i−1]∗nums[i] if nums[i]>0 if nums[i]≤0

n[i]={p[i−1]∗nums[i]n[i−1]∗nums[i] if nums[i]<0 if nums[i]≥0

那么 max(p) 就是答案,复杂度 O(n)

代码

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        if(nums.size()==0) return 0;
        if(nums.size()==1) return nums[0];
        int p[nums.size()]={0};
        int n[nums.size()]={0};

        p[0] = nums[0]>0?nums[0]:0;
        n[0] = nums[0]<0?nums[0]:0;


        for(int i=1;i<nums.size();i++){

            if(nums[i]>0&&p[i-1]>0){
                p[i] = p[i-1]*nums[i];
            }else if(nums[i]<0&&n[i-1]<0){
                p[i] = n[i-1]*nums[i];
            }else{
                p[i] = nums[i]>0?nums[i]:0;
            }

            if(nums[i]>0&&n[i-1]<0){
                n[i] = n[i-1]*nums[i];
            }else if(nums[i]<0&&p[i-1]>0){
                n[i] = p[i-1]*nums[i];
            }else{
                n[i] = nums[i]<0?nums[i]:0;
            }
        }

        int maxp = p[0];

        for(int i =0;i<nums.size();i++){
            maxp = max(maxp,p[i]);
        }
        return maxp;
    }
};
Word公式一键转MathType保姆级教程(附omml2mml.xsl报错终极解决方案) 本文提供Word公式一键转MathType的保姆级教程,重点解决常见的omml2mml.xsl报错问题。通过详细分析报错原因、官方解决方案实操步骤及转换后格式优化技巧,帮助用户高效完成公式转换,适用于科研论文和商业文档编辑。 阅读详情

相关推荐

LangGraph实战:用Python异步构建智能客服多轮对话系统(附完整代码)

本文详细介绍了如何使用LangGraph框架和Python异步编程构建一个高性能的智能客服多轮对话系统。通过将对话流程建模为有向图,结合thread_id实现多用户对话隔离,并利用异步节点提升系统并发处理能力,有效解决了传统客服系统上下文遗忘与高并发瓶颈问题。文章提供了从环境搭建、状态管理、异步优化到复杂业务逻辑与部署的完整实战代码。

weixin_29055137的博客 152

LeetCode 53/152 Maximum Subarray/Maximum Product Subarray(动态规划)

LeetCode 53/152 Maximum Subarray/Maximum Product Subarray(动态规划)

花事未了_喃喃语 436

FPGA上的YOLOv8加速实现:从Verilog到高层综合

YOLOv8 采用了更高效的C2f模块与轻量化Backbone结构,模型特征包括:结构紧凑、检测头融合高低层特征;支持Anchor-free检测机制;支持INT8、FP16低精度推理;计算密度高,适合FPGA并行优化。

2501_93174773的博客 919

LeetCode 152. Maximum Product Subarray(动态规划)

题目来源:https://leetcode.com/problems/maximum-product-subarray/ 问题描述 152.Maximum Product Subarray Medium Given an integer arraynums, find the contiguous subarray within an array (containing at leas...

da_kao_la的博客 308

Pycharm英文改成中文遇到的困难(没有Chinese插件)

点击以下链接进入汉化包下载页面ps:注意下载的版本要符合自己的Pycharm版本,过高和过低的版本都会报错这是基于很多朋友出现Pycharm没有插件而写的,如果有此插件可以参考此链接的文章。如果遇到什么问题,可以直接写在评论区!

m0_46657126的博客 1万+

告别信号干扰!手把手教你用INA333搭建高精度压力传感器电路(附PCB布线要点)

本文详细介绍了如何使用INA333仪表放大器搭建高精度压力传感器电路,解决工业测量中的信号干扰问题。从芯片选型、电路设计到PCB布线要点,全面解析INA333的低功耗、精密信号调理特性,并提供实用的抗干扰技巧和校准方法,助力工程师实现稳定可靠的传感器信号采集。

weixin_33738555的博客 570

Leetcode152 Maximum Product Subarray python

Leetcode152 Maximum Product Subarray题目解法1:brutal force解法2:同时记录最小和最大值解法3:分类讨论解法4:双向动规 题目 Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which...

qq_37821701的博客 310

OpenFeign, Zuul, Gateway相互不兼容的问题总结

版本 Lib Vresion spring-cloud-starter-gateway 3.1.0 spring-cloud-dependencies 2021.0.0 spring-cloud-starter-netflix-zuul 2.2.6.RELEASE spring-cloud-starter-openfeign 3.1.0 1. Zuul 与OpenFeign 一起使用的问题 错误信息 jav.

Harry的博客 4133

LeetCode 152. Maximum Product Subarray 题解

本题是动态规划的经典问题,主要考察对状态定义和状态转移方程的理解。由于乘法的特殊性,我们需要同时跟踪当前的最大值和最小值。动态规划的核心思想是:通过遍历数组,同时维护当前的最大值和最小值,根据当前元素的正负性来更新这两个值,从而找到整个数组的最大乘积子数组。这种方法不仅适用于最大乘积子数组问题,还可以应用于许多其他需要同时跟踪最大值和最小值的问题。掌握动态规划的思想,对于解决这类问题非常重要。

cannonjinx的博客 2802

手把手教你学pcie--用Verilog搭建PCIe控制器核心模块

PCIe控制器是硬件设计的核心模块,负责实现设备与主机之间的高速通信。本文将以Verilog语言为例,分步骤讲解如何从零构建一个简化的PCIe控制器核心模块,涵盖事务层(TLP)生成、数据链路层(DLLP)处理和物理层(PHY)接口适配。目标是为嵌入式开发者、FPGA工程师提供一个可扩展的硬件设计框架。​。

MHD0815的博客 341

学Simulink——基于软开关与高频变换的整流器系统场景实例:移相全桥ZVS整流器在轻载条件下的效率优化

本文以Simulink为平台,详细介绍了移相全桥ZVS整流器在轻载条件下的建模与优化方法。通过六个步骤系统讲解了从项目创建到仿真运行的全过程,重点分析了移相全桥拓扑结构、ZVS检测逻辑设计及轻载特性。结果显示,传统移相全桥在轻载时ZVS失效导致效率下降(<88%)。针对此问题,提出了动态频率调整、不对称半桥模式等优化策略。该案例为理解软开关技术、提升电源效率提供了实用建模方法和优化思路。

xiaoheshang_123的博客 119

Leetcode 152 Maximum Product Subarray

Leetcode 152 Maximum Product Subarray题目思路递推式代码优化 题目 Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product. Example 1 Input: [2,3,-2,4] Output: 6 Explanation: [2,3] has the

weixin_43796689的博客 245

【Zephyr存储专题】06_存储块设备驱动开发(Nand Flash)

本文介绍了基于Zephyr系统的NAND Flash驱动实现方案,重点阐述了Flash驱动模型的核心架构和关键API设计。

zero的博客 1805

[leetcode] 152 Maximum Product Subarray

先来一个比较简单的题目,也是出现较多的,求连续的最大子数组和,见hdu 1003. 比较简单的动态规划,如果当前的连续和小于0时,再加则一定会小于nums[i]的当前值,此时应该取nums[i]. #include #include using namespace std; int a[100001]; int sum[100001]; int main() { int n;

NK_test的博客 4025

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【LeetCode】#152乘积最大子序列(Maximum Product Subarray)

【LeetCode】#152乘积最大子序列(Maximum Product Subarray) 题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1...

weixin_43858604的博客 177

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

每周LeetCode算法题(十三)152. Maximum Product Subarray

每周LeetCode算法题(十三)题目: 152. Maximum Product Subarray Find the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,

JacKnights的博客 318

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Leetcode152 Maximum Product Subarray题解

Leetcode152 Maximum Product Subarray 原题 原题链接:https://leetcode.com/problems/maximum-product-subarray/ 原题大意: 给定一个整数数组 求乘积最大的子数组 思路 动态规划,理清其中的递推关系。 最大乘积可以在三种情况下出现: 1)若当前数大于0,到目前为止子数组大于0的最大的乘积(maxLast)乘以当前数字 2)若当前数字小于0,到目前为止子数组小于0的最小的乘积(minLast)乘以当前数字 3)

weixin_43573862的博客 210

LeetCode 152 Maximum Product Subarray

题目描述Find the contiguous subarray within an array (containing at least one number) which has the largest product.For example, given the array [2,3,-2,4], the contiguous subarray [2,3] has the largest p

Yano_nankai的博客 739

LeetCode 152. Maximum Product Subarray

描述 Find the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,-2,4], the contiguous subarray [2,3] has the larg...

取法于道的博客 307

LeetCode //C - 152. Maximum Product Subarray

【代码】LeetCode //C - 152. Maximum Product Subarray。

Made in Code 835

Leetcode152. Maximum Product Subarray

找一个连续的子数组,使得连乘起来最大。

magic_jiayu的博客 204

152. Maximum Product Subarray【力扣】

题意理解 求一个数组的最大连续乘积的子序列 问题分析 数组 其他 参考 https://leetcode.com/problems/maximum-product-subarray/discuss/203013/C%2B%2B-O(N)-time-O(1)-space-solution-with-explanation 链接 int maxProduct(ve...

xiexie1357的专栏 301

【LeetCode】解题152:Maximum Product Subarray

LeetCode解题 152:Maximum Product SubarrayProblem 152: Maximum Product Subarray [Medium]解题思路Solution (Java) Problem 152: Maximum Product Subarray [Medium] Given an integer array nums, find the contiguous...

Fayedily的博客 261

leetcode 152. Maximum Product Subarray

Use prefix product(sum? actually much the same). class Solution { public int maxProduct(int[] nums) { int maxNeg = 1, minPos = 1; int product = 1; int ret = Integer.MIN_VAL...

weixin_30950237的博客 233

【Java】【LeetCode】152. Maximum Product Subarray

题目: Given an integer arraynums, find the contiguous subarray within an array (containing at least one number) which has the largest product. Example 1: Input: [2,3,-2,4] Output: 6 Explanation:[...

zhelong19830726的博客 230

leetcode152 Maximum Product Subarray

求子数组的最大积. 我一开始联想到的是子数组的最大和,动态规划经典题目,但是这道题好像不能用DP来解. 我采用的是一种很直观的解法,求子数组最大积的时候,最特殊的就是0,0乘任何数都等于0.所以,假设有这样的一个数组 1,4,-5,9,-3,-4,0,1,-4,9,7,-3 0把这个数组分成了两个子数组,则最大积就是这两个子数组最大积的最大值(大多数情况下是,暂时不考虑特殊边界条件).所以...

LOVETEDA的博客 279
上一篇: Leetcode 322. Coin Change
下一篇: Leetcode 523. Continuous Subarray Sum
vincentCheungM
博客等级 码龄10年 4粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值