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

力扣 乘积最大子数组

动态规划,注意负负得正,dp交换。

题目

注意这里的dp的乘积要求最大,而两个很大的负数相乘也是大的,因此在每遍历到一个数时要存一个最大值的dp与一个最小值的dp,然后遍历完后再去存ans的dp。由于存在负数,那么会导致最大的变最小的,最小的变最大的。因此还需要维护当前最小值。

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

class Solution {public int maxProduct(int[] nums) {int ans = Integer.MIN_VALUE, imax = 1, imin = 1;for(int i=0; i<nums.length; i++){if(nums[i] < 0){ // 负数交换,这样每次循环后,imax最大,imin最小int tmp = imax;imax = imin;imin = tmp;}imax = Math.max(imax*nums[i], nums[i]);//维护大的imin = Math.min(imin*nums[i], nums[i]);//维护小的ans = Math.max(ans, imax);}return ans;}
}

动态规划题还是要多练。 

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

相关文章:

  • ABP - 事件总线之分布式事件总线
  • osgearth控件显示中文(八)
  • 基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest
  • webpack打包优化策略
  • Kafka日志数据深度解析:从基础查看到高级操作全攻略
  • DeepSeek-R1使用生存指南
  • Code::Blocks 创建 C 项目 二
  • pyqt写一个待办程序
  • 总结前端常用数据结构 之 数组篇【JavaScript -包含常用数组方法】
  • 利率掉期(Interest Rate Swap):运作原理、收益模式及市场角色解析(中英双语)
  • Mac 开发工具推荐
  • NCHAR_CS和CHAR_CS,导致UNION ALL 时,提示SQL 错误 [12704] [72000]: ORA-12704: 字符集不匹配
  • 使用 Python paramiko 自动备份设备配置实验
  • goland2022.3.3 安装过程
  • 工业级推荐系统冷启动解决方案:基于元迁移学习与动态知识图谱的混合架构设计与实践
  • 小小小病毒(3)(~_~|)
  • 在 WSL上的 Ubuntu 中通过 Docker 来运行 Redis,并在微服务项目中使用redis
  • 深入解析SVG图片原理:从基础到高级应用
  • Python 中的一种调试工具 assert
  • 面基Spring Boot项目中实用注解一
  • 【数据库维护】Clickhouse数据库维护关键系统表相关指标说明,支撑定位慢SQL及多实例场景下分析各实例运行情况
  • 委托构造函数与继承构造函数
  • DeepSeek操作Excel,实现图表自动化生成
  • 3.5 企业级AI Agent运维体系构建:从容器化部署到智能监控的工业级实践指南
  • 基于51单片机的定时器实现LED闪烁控制(CT107D)
  • 【java】作业1
  • 2025有哪些关键词优化工具好用
  • 【WPSOffice】汇总
  • 海康摄像头IPV6模式,手动,自动,路由公告
  • Transformer(3): Add Norm