LeetCode热题100(乘积最大子序列)

给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续 子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

测试用例的答案是一个 32-位 整数。

请注意,一个只包含一个元素的数组的乘积是这个元素的值。

代码:

java 复制代码
class Solution {
    public int maxProduct(int[] nums) {
        int max = Integer.MIN_VALUE,imax = 1, imin = 1;
        for(int i = 0; i < nums.length;i++){
            if(nums[i] < 0){
                int tmp = imax;
                imax = imin;
                imin = tmp;
            }
            imax = Math.max(imax * nums[i],nums[i]);
            imin = Math.min(imin * nums[i],nums[i]);
            max = Math.max(max,imax);
        }
        return max;
    }
}

题解思路:

使用两个变量记录当前变量的最大值和最小值,当出现负数时两个值进行互换。

相关推荐
abluckyboy37 分钟前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
园小异42 分钟前
2026年技术面试完全指南:从算法到系统设计的实战突破
算法·面试·职场和发展
m0_7066532344 分钟前
分布式系统安全通信
开发语言·c++·算法
天天爱吃肉82182 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
alphaTao2 小时前
LeetCode 每日一题 2026/2/2-2026/2/8
算法·leetcode
甄心爱学习2 小时前
【leetcode】判断平衡二叉树
python·算法·leetcode
颜酱2 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
不知名XL2 小时前
day50 单调栈
数据结构·算法·leetcode
@––––––3 小时前
力扣hot100—系列2-多维动态规划
算法·leetcode·动态规划
xsyaaaan3 小时前
代码随想录Day31动态规划:1049最后一块石头的重量II_494目标和_474一和零
算法·动态规划