当前位置: 首页 > news >正文

Leetcode152. 连续子数组的最大乘积

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

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

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

子数组 是数组的连续子序列。

题解:动态规划

状态转移方程为:dp[i] = max(dp[i - 1] * nums[i], nums[i])

为每一个状态只与前一个状态有关,可以使用「滚动变量」技巧,使用常数个变量完成这道问题

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

代码如下:

class Solution {public int maxProduct(int[] nums) {int preMax = nums[0];int preMin = nums[0];int curMax;int curMin;int res = nums[0];for(int i = 1; i < nums.length;i++) {if(nums[i] >=0){curMax = Math.max(nums[i], preMax*nums[i]);curMin = Math.min(nums[i], preMin*nums[i]);}else{curMax = Math.max(nums[i], preMin*nums[i]);curMin = Math.min(nums[i], preMax*nums[i]);}res = Math.max(curMax,res);preMax = curMax;preMin = curMin;}return res;}
}

http://www.lryc.cn/news/165469.html

相关文章:

  • 01_kafka_环境搭建安装_topic管理
  • Python+Requests+Excel接口测试实战
  • 10:STM32------I2C通信
  • Git多人开发解决冲突案例
  • 医疗机构如何维护电力系统?来看看这个小技巧
  • 时序预测 | MATLAB实现ELM极限学习机时间序列预测未来
  • 【数据分享】1901-2022年我国省市县镇四级的逐年平均气温数据(免费获取/Shp/Excel格式)
  • 【Axure高保真原型】日历日期原型模板
  • 深入了解接口测试:Postman 接口测试指南
  • 【ROS】Ubuntu20.04+ROS Noetic 配置PX4-v1.12.2和Gazebo11联合仿真环境【教程】
  • Java 代理模式之静态代理与动态代理
  • 打造基于终端命令行的IDE,Termux配置Vim C++开发环境
  • 【初阶C语言】操作符2---表达式求值
  • 代码随想录day50|123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV
  • Word 表格单元格无法垂直居中
  • python实现Flask POST Demo
  • 3-Pytorch张量的运算、形状改变、自动微分
  • 用户权限数据转换为用户组列表(3/3) - Excel PY公式
  • VS2022+CMAKE+OPENCV+QT+PCL安装及环境搭建
  • JavaScript的内置类
  • 6.英语的十六种时态(三面旗):主动、被动、肯定、否定、一般疑问句、特殊疑问句。
  • SpringBoot连接Redis与Redisson【代码】
  • ardupilot开发 --- MAVSDK 篇
  • 腾讯云AI超级底座新升级:训练效率提升幅度达到3倍
  • AB测试结果分析
  • Python模块和包:sys模块、os模块和变量函数的使用
  • 计算机软件工程毕业设计题目推荐
  • 嵌入式学习笔记(25)串口通信的基本原理
  • c++学习第十三
  • java复习-线程的同步和死锁