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 largest product 6.

Example 2:

Input: [-2,0,-1]
Output: 0
Explanation: The result cannot be 2, because [-2,-1] is not a subarray.

以下摘自OJ官方解答,大体思路相同,写法简洁:

Besides keeping track of the largest product, we also need to keep track of the smallest product. Why? The smallest product, which is the largest in the negative sense could become the maximum when being multiplied by a negative number.

Let us denote that:

f(k) = Largest product subarray, from index 0 up to k.

Similarly,

g(k) = Smallest product subarray, from index 0 up to k.

Then,

f(k) = max( f(k-1) * A[k], A[k], g(k-1) * A[k] )
g(k) = min( g(k-1) * A[k], A[k], f(k-1) * A[k] )

There we have a dynamic programming formula. Using two arrays of size n, we could deduce the final answer as f(n-1). Since we only need to access its previous elements at each step, two variables are sufficient.

public int maxProduct(int[] A) {
   assert A.length > 0;
   int max = A[0], min = A[0], maxAns = A[0];
   for (int i = 1; i < A.length; i++) {
      int mx = max, mn = min;
      max = Math.max(Math.max(A[i], mx * A[i]), mn * A[i]);
      min = Math.min(Math.min(A[i], mx * A[i]), mn * A[i]);
      maxAns = Math.max(max, maxAns);
   }
   return maxAns;
}

 

RK3568适配MIPI屏幕触摸,触摸延时很大 我用的是系统,接了一个,设备树已经正确配置,evtest测试坐标值和触摸位置都是准确的。但是出现了一个:我在屏幕上点一下,要等大约 2 秒才能在evtest里看到坐标事件打印。这种现象在 Goodix 系列触摸驱动里比较少见,一般意味着。 阅读详情

相关推荐

2025小红书跳转卡片实战指南:从零搭建独立后台与自动化发卡系统

本文提供了一份2025年小红书跳转卡片的实战搭建指南,详细解析了独立后台系统的核心架构与自动化发卡流程。文章从零开始,手把手教你使用Node.js、Vue.js等技术栈构建包含后台管理、用户制卡中心与前端交互的完整系统,旨在帮助运营者实现合规引流,并掌握数据自主权与自动化运营能力。

weixin_29234423的博客 517

Maximum Product Subarray

找到具有最大乘积的数组的连续子数组。

不积跬步无以至千里 500

IMDb影评数据集:从下载到情感分析实战指南

本文提供了IMDb影评数据集从下载、探索到情感分析建模的完整实战指南。详细介绍了数据预处理、TF-IDF向量化方法,并对比了逻辑回归、随机森林、SVM及LSTM深度学习模型在情感分析任务上的应用与效果评估,帮助读者系统掌握自然语言处理的核心流程。

weixin_29052717的博客 448

Maximum Product Subarray 【leetcode】

目录: 1、问题以及问题分析 2、解决方案 2.1 方法一 2.2 方法二 3、其他 1、问题以及问题分析 题目来自:leetcode  网址:https://oj.leetcode.com/problems/maximum-product-subarray/ 题目描述: Find the contiguous subarray wi

wolinxuebin的专栏 1100

别再为H5扫码头疼了!用Vue3 + vue-qrcode-reader,5分钟搞定移动端摄像头调用(附完整代码)

本文详细介绍了如何使用Vue3和vue-qrcode-reader快速实现移动端扫码功能,解决H5开发中常见的摄像头调用和兼容性问题。通过完整的代码示例和优化技巧,帮助开发者高效集成二维码识别功能,提升用户体验和开发效率。

weixin_33737134的博客 513

Windows下MMdetection3D保姆级安装指南(含CUDA和PyTorch版本避坑)

本文提供Windows平台下MMdetection3D的完整安装指南,重点解决CUDA与PyTorch版本匹配问题。从环境准备到关键组件安装,详细介绍了CUDA Toolkit选择策略、PyTorch精准安装步骤,以及MM系列组件的安装顺序和常见错误解决方案,帮助用户顺利完成3D目标检测环境的配置。

weixin_42628941的博客 490

[LeetCode] Maximum Product Subarray的4种解法

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

┅☆心随风飞 7206

RK3588开发板实战:从零开始移植Ubuntu 24.04(讯为SDK版)

本文详细介绍了如何在RK3588开发板上从零开始移植Ubuntu 24.04系统(讯为SDK版),涵盖开发环境准备、SDK解析、根文件系统定制、驱动适配、系统集成与烧录等全流程。通过实战案例,帮助开发者快速掌握RK3588开发板的系统移植技巧,适用于嵌入式开发与定制化Linux系统构建。

sand8的博客 436

152. Maximum Product Subarray

这个题只需要遍历2遍。

ujn20161222的博客 479

Coze离线部署实战:从镜像拉取到服务启动的完整避坑指南

本文提供了一份详尽的Coze平台离线部署实战指南。针对无外网的生产环境,详细讲解了从Docker镜像拉取、打包传输到内网服务器加载的完整流程,并重点剖析了使用docker-compose启动服务时常见的配置错误与权限问题,如文件挂载缺失、网络绑定错误等,提供了经过验证的避坑解决方案,旨在帮助运维和开发人员一次性成功部署。

weixin_29310605的博客 326

杰理JL703N的SDK内部MIDI 音色库功能使用教程

本文介绍了MIDI琴按键解码和MIDI文件解码的实现方法。MIDI琴解码通过audio_dec_midi_ctrl.c文件实现,MIDI文件(mfa格式)解码则使用audio_dec_midi_file.c。使用前需将音色文件存放在SD卡或内置flash中(需确保四字节对齐),并在download.c中配置路径。同时需在板级配置中将FLASH设置为16Mbit以解决编译问题。关键注意事项包括音色文件的文件夹结构对齐要求和MIDI数据流的正确配置。

qq_42014563的博客 390

[leetcode] 152. Maximum Product Subarray

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

Learning from the mistakes 193

YOLO26一文弄懂 | YOLO26内容详解、网络结构解读 、yolo26.yaml配置文件详细解读与说明、YOLO26虚拟环境安装、模型训练、验证、推理参数详细解析 | 通俗易懂!入门必看系列!

YOLO26目标检测模型创新与应用指南 本文全面介绍了YOLO26目标检测模型的创新特性、网络结构及实践应用。YOLO26基于四大核心原则设计:简洁性(移除NMS后处理)、部署效率(端到端架构)、训练创新(MuSGD优化器)和任务优化(支持多种视觉任务)。模型包含五种尺寸规格,CPU推理速度提升43%,支持目标检测、实例分割、姿态估计等任务。 文章详细解析了YOLO26的网络结构(Backbone-Neck-Head三部分)和yaml配置文件,提供了从虚拟环境配置到模型训练、验证、推理的完整教程。

Ai缝合怪、助力小伙伴高效发论文 2万+

[LeetCode] Maximum Product Subarray 求连续子数组的最大乘积

声明:原题目转载自LeetCode,解答部分为原创 Problem :     Find the contiguous subarray within an array (containing at least one number) which has the largest product.     For example, given the array [2,

xblog_的博客 2232

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[LeetCode] Maximum Product Subarray 求最大子数组乘积

题目描述: 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。 样例输入: 3 2 4 -3 5 2 5 -1 2 -1 样例输出: 8 20 1.最简单的思路:暴力枚举 枚举每个子序列的乘积,比较它们的乘积 代码: #include #define max(x,y) (x>y?x:y) int main() { int n, i, a[20];

dk1543100966的博客 672

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode: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] ha...

但行好事,莫问前程 329

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

[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:[2,3] ...

weixin_30326515的博客 217

LeetCode 152.乘积最大子数组

题目来源:https://leetcode-cn.com/problems/maximum-product-subarray/ 思路:参考题解 解题方案 思路 标签:动态规划 遍历数组时计算当前最大值,不断更新 令imax为当前最大值,则当前最大值为 imax = max(imax * nums[i], nums[i]) 由于存在负数,那么会导致最大的变最小的,最小的变最大的。因此还需要维护当前最小值imin,imin = min(imin * nums[i], nums[i]) 当负数出现时则imax与

Cherish@WVv 263

【小白笔记】乘积最大子数组(Maximum Product Subarray)

这道题是经典的动态规划问题,但与求“最大和子数组”(Kadane’s Algorithm)不同的是,一个很小的负数,如果乘以另一个很大的负数,结果可能会变成一个很大的正数,从而成为当前的最大乘积。于分情况讨论的公式,并且更简洁、更易于编程实现,这也是代码中实际使用的形式。如果数组中全是正数,那么最大乘积就是整个数组的乘积。因为它是负数乘以正数,结果是负数,不可能比。因为它是负数乘以负数,结果是正数,不可能比。因为它是一个负数,不可能比前两项大。因为它是一个正数,不可能比前两项小。空间优化的实现中,我们用。

weixin_70325224的博客 938

Leetcode 152 Maximum Product Subarray 子数组最大乘积

在数组(至少包含一个元素)中找到一个连续的子数组,使得该子数组元素的乘积最大。

(ง •̀_•́)ง 1065

LeetCode 152. Maximum Product Subarray 题解:乘积最大子数组的动态规划原理与 Go 实现

本文围绕 LeetCode 152「Maximum Product Subarray(乘积最大子数组)」展开,以本仓库 [leetcode/0152.Maximum-Product-Subarray/README.md](https://link.gitcode.com/i/345d2bf8e67baf6804d3c6702863db62) 为骨架,结合同目录下的 Go 源码与测试用例,完整讲解这

gitblog_00563的博客 809

leetcode 152.乘积最大子数组(maximum product subarray)C语言

leetcode 152.乘积最大子数组(maximum product subarray)C语言1.description2.solution 1.description https://leetcode-cn.com/problems/maximum-product-subarray/description/ 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组

hsk6543210的博客 400

152. Maximum Product Subarray**(乘积最大子数组)

152. Maximum Product Subarray**(乘积最大子数组) https://leetcode.com/problems/maximum-product-subarray/ 题目描述 Given an integer array nums, find a contiguous non-empty subarray within the array that has the largest product, and return the product. It is guaranteed

珍妮的选择的博客 408

Leetcode 152.乘积最大子数组(Maximum Product Subarray)

Leetcode 152.乘积最大子序列 1 题目描述(Leetcode题目链接)   给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 2 题解   一开始的想法...

qq_39378221的博客 206

LeetCode 53/152 Maximum Subarray/Maximum Product Subarray---DP **

题目:Maximum Subarray Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [−2,1,−3,4,−1,2,1,−5,4], the contiguo

小村长技术blog 2121

LeetCode 152. Maximum Product Subarray【乘积最大子数组】⭐⭐⭐⭐⭐

文章目录题目描述知识点结果实现码前思考代码实现码后反思 题目描述 知识点 动态规划 结果 实现 码前思考 这个题目最大的陷阱就是很容易掉到和最大子数组和的陷阱里面。我们考虑[-2,1,-2]这种情况就应该知道这并不简简单单是最大子数组和那么简单的事情了; 这里还是使用到了最大子数组和中,i位置的情况是由i-1号位置所决定的这种最优子结构问题,但是在这里,由于在计算i-1时,是不可以去看i及其后面的数字的符号的,所以我们需要存储两个值,i-1位置的最大正数乘积maxPos和最小负数乘积minNeg,.

yc_cy1999的博客 265
上一篇: spring boot acutuator 配置
下一篇: leetcode-209-长度最小的子数组
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值