152. Maximum Product Subarray(最大子串积)

动态规划题目(三)——最大连续乘积子串 动态规划题目(三)——最大连续乘积子串 1. 题目描述 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积30.58=12是最大的,而且是连续的。 2. 动态规划求解 动态规划求解题目的时候最重要的是要找到状态转移方程! 阅读详情

这道题与最大子串和有异曲同工之妙,但是要更难一点。最大子串和只需要一直往后累加,只要不会加到比原本小就继续累加,否则替换值。但是这题要更复杂一些,因为有可能会出现偶数个负数使最后的积变得更大,但是一直往后累乘是不可能出现与负数相乘的情况(因为相乘以后比本身小的情况会被替换值)。这个时候除了维护一个局部最大值外,还需维护一个局部最小值,并且每次都比较“局部最小值*子字符”与“局部最大值”两者的大小关系,这样就能保证局部最大值包含了偶数个负数出现导致最后的积变得更大的情况。简单的说,当出现负数时,局部最大值会被替换为子字符的值,而局部最小值=局部最大值*子字符,这样就能保证局部最小值一定是最小的,假如出现下一个负数,局部最大值就会被替换为局部最小值*子字符,保证时最大的乘积。

#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))

class Solution {
public:
    int maxProduct(vector<int>& nums) {
        int size = nums.size();
        if (!size)
            return 0;
        if (size == 1)
            return nums[0];
        int sum = nums[0];
        int max = sum, min = sum;
        for (int i = 1; i < size; i++) {
            int tmp = sum;
            sum = MAX(MAX(nums[i] * sum, nums[i]), nums[i] * min);
            min = MIN(MIN(nums[i] * tmp, nums[i]), nums[i] * min);
            max = MAX(max, sum);
        }
        return max;
    }
};


最大连续乘积子串(动态规划问题) 题目描述 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积30.58=12是最大的,而且是连续的。 分析与解法 此最大乘积连续子串与最大乘积子序列不同,请勿混淆,前者子串要求连续,后者子序列不要求连续。也就是说,最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence,LCS)是: 子串(Subs 阅读详情

相关推荐

利用C语言来求最大连续子序列乘积的方法

题目描述:给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积3*0.5*8=12是最大的,而且是连续的。 提醒:此最大乘积连续子串与最大乘积子序列不同,请勿混淆,前者子串要求连续,后者子序列不要求连续。也就是说:最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence,LCS)的区别:     子串(Substring)是串的一个连续的部分,子序列(Subsequence)则是从不改变序列的

最大子串和、积

1、最大子串和 endMax[i]表示以第i项为结尾的子串最大和 状态转移方程: dp[i] = max(dp[i-1]+arr[i],arr[i],dp[i-1]) 代码实现: /** * 子串最大和 * * @param arr * @return */ static int getMaxSubStringSum...

sinat_27180563的博客 395

基于Windows环境的OGG远程抽取异常(经典模式)OGG-02830 Formatting error

MOS提供的解决方法,根据MOS的提示是由于使用的OGG版本太新了,经典模式下已经弃用了这种远程抽取方式。问题:Windows环境下启用远程抽取ADG备库的数据,在启动抽取进程的时候出现如下错误提示。

Mrzhou的博客 378

最大子串乘积问题

给定一个

Mind Code 671

Claude Code × SolidWorks:批量填属性、格式转换、BOM 汇总自动化实战

摘要:本文介绍利用 Claude Code 生成 VBA 宏实现 SolidWorks 批量处理任务的自动化方案。包含5个实战案例:批量填写自定义属性(60分钟任务→10秒)、批量格式转换(80分钟→30秒)、多配置工程图自动生成(120分钟→2分钟)、滚珠丝杠选型计算(15分钟→10秒)和装配体递归BOM导出(40分钟→1分钟)。所有代码基于SolidWorks 2020+ API,提供完整VBA实现和操作指南,可显著提升设计效率。

m0_64424835的博客 609

Open5GS实战:从零搭建树莓派5G核心网并与商用终端联调

本文详细介绍了如何在树莓派5上从零开始搭建基于Open5GS的5G核心网,涵盖系统准备、依赖安装、源码编译、关键配置修改及服务启动全流程。通过整合SDR基站与商用终端进行端到端联调,为开发者和研究者提供了一个低成本、可实践的5G网络实验平台,助力物联网与边缘计算应用的本地化测试与验证。

weixin_29194255的博客 157

152. Maximum Product Subarray(乘积最大子序列)

152. Maximum Product Subarray 乘积最大的子序列,其实这里用子串更加好,在前面的文章中我说过关于子序列与子串的区别,那么我们现在看到这个题目首先可以联想到最长累加最大的子串,这题赫那道题有点相似点,其实我相信大部分人看到这个题目说这很简单,只需要两次遍历就可以暴力解出。确实暴力可以解答,但是这道题对于O(n·n)应该是超时的,那么这道题可不可以用一次遍历就解答出来呢。...

asd994144293的博客 230

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 536

【Leetcode152】Maximum Product Subarray

Runtime:4 ms, faster than87.06%ofC++online submissions forMaximum Product Subarray. Memory Usage:7 MB, less than100.00%ofC++online submissions forMaximum Product Subarray. 典型的动态规划,因为起点和终...

weixin_39458342的博客 207

YOLO11实战:手把手教你优化钢材表面缺陷识别模型(基于NEU-DET数据集)

本文详细介绍了如何使用YOLO11优化钢材表面缺陷识别模型,基于NEU-DET数据集进行实战训练。从数据增强、模型架构优化到训练过程控制,全面解析提升钢材缺陷检测性能的关键技术,特别针对裂纹、划痕等典型缺陷提出针对性解决方案。

weixin_29081163的博客 377

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

Maximum Product Subarray - LeetCode 152

题目描述: 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 lar

bu_min的博客 435

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 200

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...

LawFile的博客 210

手把手教程 | 使用 apktool 修改已发布 APK 的版本号与版本名称

摘要:本文介绍如何使用apktool工具直接修改APK版本信息,适用于版本回滚、多版本测试等场景。详细步骤包括反编译APK、修改版本号、重打包、对齐优化和重新签名,并分享了反编译相关实用知识。该方法无需源代码参与,但需注意修改后的APK必须重新签名才能安装。最后强调应在合法范围内使用反编译技术。

学无止境 825

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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 t

Much effort, much prosperity. 403

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

leetCode No.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 pro

Andy_Shan的博客 543

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Leetcode#152 Maximum Product Subarray

原题地址 简单动态规划,跟最大子串和类似。 一维状态空间可以经过压缩变成常数空间。 代码: 1 int maxProduct(int A[], int n) { 2 if (n <= 0) 3 return 0; 4 5 int res = A[n - 1];...

dicui3114的博客 120

leetcode 152 Maximum Product Subarray

leetcode 152 Maximum Product Subarray 题目大意:数组中找到一个连续子串,使其乘积最大。数组中至少含有一个元素。 思路:采用动态规划的思想。因为数组中含有负数,且多个负数相乘可能出现为正的情况,所以在动态规划中我们需要记录最小负数。pamin[i]代表子串最后一个元素为nums[i]的最小乘积,pamax[i]代表子串中最后一个元素为nums[i]的

Mr_hg的博客 342

152. Maximum Product Subarray

QUESTION 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]

可怜虫 314

152. Maximum Product Subarray Medium

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 larges

wakakon的博客 253

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 pr...

weixin_30383279的博客 103

飞鼠格式实测:本地转换工具,支持文档图片音视频,解析开源许可证

文件格式转换是日常办公中的高频需求,处理文档、图片或音视频时,我们常面临在线工具需上传文件的隐私顾虑。本地转换工具通过集成开源转换库,在设备本地完成格式转码,无需网络连接,从根本上规避数据外泄风险。其技术价值在于兼顾隐私保护、转换速度与离线可用性,特别适合处理含个人敏感信息的文件,或在弱网环境中保持生产力。本文以免费开源的Windows工具“飞鼠格式”为例,梳理其支持的格式范围、本地运行逻辑与许可证条款,并结合实测分享批量转换、命令行调用等实用经验,为寻找隐私友好型转换方案的用户提供参考。

weixin_30824479的博客 183

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] ...

Gongzq5的博客 279
上一篇: 115. Distinct Subsequences(互异子序列)
下一篇: 55. Jump Game(跳跃游戏)
BetweenRain
博客等级 码龄9年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值