最大连续子序列乘积(Java实现)

JAVA算法:求最大连续子序列乘积问题(JAVA版本) JAVA算法:求最大子数组乘积问题(JAVA版本) 给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 问题分析 算法设计 Solution 1 package com.bean.algorithmbasic; public class MaximumProductSubarray { /* * 最大连续子数组乘积 * ... 阅读详情

1.题目

给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。

2.解法

public int FindMaxProduct(int[] nums) {
    if (nums == null || nums.length == 0) {
         return 0;   
    }
    
    int max = nums[0], min = nums[0], result = nums[0];
    
    for (int i = 1; i < nums.length; i++) {
        // 要和最小值进行判断,如果遇到负数的话,最小值最大
         int tmp = max;
         max = Math.max(Math.max(max * nums[i], min * nums[i]), nums[i]);
         min = Math.min(Math.min(min * nums[i], tmp * nums[i]), nums[i]);
            
        // 求最大值一直在算,有可能越算越小
        if (max > result){
            resutl = max;
        }
            
    }
    return result;
}

时间复杂度O(n), 空间复杂度O(1)

动态规划-求最大连续子序列乘积 经典动态规划问题 定义dp[i]的意义:表示以i为下标结束的最大连续乘积值 定义dp方程:dp[n] = max(dp[n-1] * a[i], a[i]); 最大连续乘积值就在dp[n]中取得 res = max(dp[n],res); Java 代码实现 package com.study.dynamic; import java.util.Objects; /** * * 给定一... 阅读详情

相关推荐

VSCode 远程开发:实现服务器图形化界面(GUI)的高效操作指南

本文详细介绍了如何通过VSCode远程开发实现服务器图形化界面(GUI)操作,包括X11转发原理、完整配置指南和实战测试。通过安装Xming、配置SSH连接和服务器端设置,开发者可以高效地在本地显示远程GUI应用,提升开发效率。

weixin_29245767的博客 294

连续子数组乘积的最大值

题目描述 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如数组:arr[]={1, 2, 3, -2, 4, 3 } 最大子数组为 {4,3} 积为12。 基本思路 方法1:暴力枚举 方法2:动态规划 代码实现 package leetcode.dp; import j...

皮皮狗 921

数据仓库实践:从ITR流程讲指标体系建设

从 ITR 流程或者其他客服反馈流程的考核过程可见,实际工作中不可能只通过单个指标评价一个业务过程,需要从多个维度梳理业务,并把多个高度相关的指标组织起来,以避免只考虑其中某个指标从而摧毁整个业务过程的结果,指标体系=指标+体系。

the_singing_towers的博客 2268

最大连续子序列乘积

问题描述 给定一个整数序列(可能有正数,0和负数),求它的一个最大连续子序列乘积。比如给定数组a={3, -4, -5, 6, -2},则最大连续子序列乘积为720,即3*(-4)*(-5)*6=720。 分析 求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0。 假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来

__七把刀__ 7996

Silvaco TCAD | GaN HEMT器件仿真与高频功率应用实战

本文详细介绍了使用Silvaco TCAD进行GaN HEMT器件仿真的全流程,涵盖器件结构设计、极化效应建模、高频特性分析及功率损耗优化。通过实战案例展示了GaN HEMT在电动汽车电驱和快充模块等高频功率应用中的性能优势与效率提升策略,为工程师提供可靠的仿真方法与设计验证手段。

desk3的博客 184

数据清洗(Data Cleansing)

数据清洗(Data Cleansing)是指对数据进行处理和纠错,以去除或修复数据集中存在的错误、不致、不完整和冗余的数据,从而使数据更加准确、可靠和有用。数据清洗是数据处理和数据分析中一个非常重要的步骤,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。数据清洗是一个重要的过程,它可以帮助我们提高数据的质量,从而提高数据分析和机器学习的准确性和可靠性。在实际应用中,我们可以使用一些工具和技术来实现数据清洗,例如 Pandas、NumPy 和 OpenRefine 等。通过数据清洗,

meimei169500的博客 1万+

最大连续子序列的和与积

这是两个非常相似的问题,最大子序列和思路:当前面加的数据和小于等于0时,就放弃前面的序列,用一个变量记录前面的最大和;依次计算子序列和,每次计算出的结果和之前保存的最大值相比较并更新最大值。 最大子序列积思路:他的条件判断变成前面数据的积为0是,就放弃前面的序列,其他思路和上面一样,重要的是他需要两次的遍历数组, 因为很可能数组中负数是奇数个,这时候要找出负数两边的最大值,再比较这两边的那

学习印记 Learning imprint 1802

AI中台系统设计方案探讨

集成JupyterLab、低代码建模工具(如H2O.ai)、预训练模型库(Hugging Face、PaddleHub)。:通过REST/gRPC接口封装AI能力(如OCR、语音识别),支持流量控制与鉴权(如Kong、Apigee)。:服务注册发现(Consul)、熔断降级(Hystrix)、监控告警(Prometheus+Grafana)。:分布式存储(如HDFS、Ceph)与对象存储(如S3、OSS),支持海量数据高速读写。加密传输(TLS)、动态脱敏(如数据掩码)、访问控制(RBAC)。

reset2021的博客 1036

连续子序列的最大乘积

问题描述   给定一个整数序列,序列中可能含有0,正数,负数,求出连续子序列乘积的最大值 暴力解法   双层循环,一一遍历,每次将当前结果与前次结果要比较,如果大于前次结果,更新最大值,时间复杂度为O(n2),复杂度较高,代码略 动态规划解法   对于序列arr,maxDp[k]表示以arr[k](必须包含arr[k])结尾的最大连续子序列乘积值,minDp[k]表示以arr[k](必须...

weixin_34405332的博客 527

从零上手HiAgent:构建能听懂指令的智能体框架实战指南

智能体(Agent)作为人工智能领域的重要范式,正从传统的预设流程自动化转向以目标驱动的自主规划与执行。其核心原理在于利用大语言模型(LLM)作为决策大脑,通过任务规划、工具调用与记忆机制,将模糊的自然语言指令转化为可执行的工作流。这一技术显著提升了人机协作的效率和自然度,其价值在自动化办公、数据分析与智能流程编排等场景中尤为突出。本文聚焦于HiAgent这一具体框架,深入解析其作为智能体开发平台的核心架构,涵盖规划器、执行器、工具集等关键组件,并提供从环境配置、自定义工具开发到复杂任务链构建的完整工程实践

weixin_29266007的博客 902

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2822

找出一个乘积最大的连续子序列

package suanfajingsai; import java.util.Scanner; /* * 输入n个元素组成的序列S,找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,输出0(表示无解)。 * 1<=n<=18,-10<=Si<=10。 案例: Sample Input 3 2 4 -3

qq_37387363的博客 1329

西门子SMART PLC增量式PID(完整梯形图FC)

西门子PLC自带的PID指令是基于位置型的PID,位置型PID的算法公式和详细介绍,大家可以参看《PID专栏》的其它文章,这里不再赘述。本篇博文直接给出代码部分的讲解,不设计太多公式和理论的推导。限于本人能力,文中难免出现错误和不足之处,诚恳欢迎大家的批评和指正。同时感谢大家的订阅和关注。SMART200 PLC系统自带的PID指令解析,可以参看下面这篇文章:SMART PLC PID算法基本解析(附公式)_RXXW_Dor的博客-优快云博客_plc的pid算法在态运行中,控制器调节输出值,使偏差 (e

RXXW_Dor的博客 8149

191.Maximum Product Subarray-乘积最大子序列(中等题)

乘积最大子序列 题目找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 题解对于任意nums[i],以该元素为结束的子序列最大乘积要么是nums[i],要么是nums[i]乘以以nums[i]为结束的子序列的最大乘积。由于负负可以得正,故需要同时记录最大值和最小值。 public class Soluti

三色旗飞扬 332

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

乘积最大的连续子序列

问题:输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应该输出-1(表示无解)。(可以输入小数,输出保留两位小数)输入: 3         2 4 -3输出: 8.00输入: 5        2 5 -1 2 -1输出: 20.00解:public class Main { public static void main(String[] args...

AIlfw的博客 1492

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Leetcode刷题java之152. 乘积最大子序列

执行结果: 通过 显示详情 执行用时 :2 ms, 在所有 Java 提交中击败了92.22% 的用户 内存消耗 :36.7 MB, 在所有 Java 提交中击败了70.48%的用户 题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 ...

逆水行舟,不进则退 506

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

leetcode 【高级】 乘积最大子序列 Java

题干 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 想法 遍历一遍 动态规划 现在的大还是原来的乘起来大 同时注意有负数 也要规划记录最...

qq_43491066的博客 202

leetcode152---乘积最大子序列

leetcode152—乘积最大子序列 题目简述 输入: nums []int; 操作: 找出nums中乘积最大的子序列; 输出: max int; 解法分析 动态规划 dp[i][2]: nums数组中以索引为i结尾的子序列乘积的最大值和最小值; dp[i][0]: 最小值; dp[i][1]: 最大值; 状态转移方程: dp[i][0]=min(dp[i-1][0]*nums...

Again的博客 168

Q152 乘积最大子序列

给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 class Solution { p...

210

[数据结构]连续子序列最大和,最大积的问题

假设输入{-2,11,-4,13,-5,2} 则答案是20 {11,-4,13} 有许多时间复杂度不同的算法可以用于解决连续子序列最大和的问题,如以下三种复杂度分别为N立方,N平方和N。大O时间复杂度的估计并不需要精确的计算,许多情况可以简单的将所有嵌套循环的规模相乘,但连续的循环不能相乘,来计算时间复杂度。如果要改善穷举算法,一般需要正确性的证明。 如第三种时间复杂度为N的方法,是基于如

纳米的专栏 795

最大乘积(Maximum Product)

Maximum Product Time Limit:3000MS   Memory Limit:Unknown   64bit IO Format:%lld & %llu Submit  Status Description Problem D - Maximum Product Time Limit: 1 second Give

梦空间 699

152. Maximum Product Subarray

最大连续子序列乘积 参考这个题解: 求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0。 假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来表示以a[i]结尾的最大连续子序列的乘积值,用Min[i]表示以a[i]结尾的最小的连续子序列的乘积值,那么状态转移方程为: Max[i]=max{a[i], Max[i-1]

linwutao0810的专栏 192

Leetcode152 乘积最大子序列 C++,Java,Python

Leetcode152 乘积最大子序列 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-product-subarray/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: ...

Rp的博客 336

【算法面试通关40讲】47 - 面试题:乘积最大子序列

Leetcode-152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 解法:1. 使用暴力解法。2. 使用dp策略,...

Melo 248

乘积的最大子序列

题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 题目来源:力扣(LeetCode) 链接:https://leetcode...

笃行 270

题目:乘积最大子序列

找出一个序列中乘积最大的连续子序列(至少包含一个数)。 您在真实的面试中是否遇到过这个题? Yes 样例 比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 标签 Expand    相关题目 Expand  解题思路:  简单动态规划: •用数组positive_max[i]维护原始数组前

684
上一篇: 进程的概念(了解一下)
下一篇: 字符串的翻转(Java实现)
念殊15
博客等级 码龄8年 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值