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

乘积最大 之 连续与非联系子数组

文章目录

  • 152.乘积最大子数组
  • 2708.一个小组的最大实力值

乘积的最大情况分为两种,一种是 要求子数组是连续的,一种是要求数组是不用连续的
连续可以使用动态规划求解,非连续则使用贪心

152.乘积最大子数组

152.乘积最大子数组

在这里插入图片描述

思路分析:由于要求是连续的,那么当前的nums[i]来说,对应的以它结尾的子数组的情况,要么是自己独自开始,要么是接着前一个dp[i-1]的情况,所以总的来说,转移情况可以用动态规划来解决,也就是使用fmax和fmin来记录最大和最小的值

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        # 一样的思路
        n = len(nums)
        fmax = [1]*(n+1)
        fmin = [1]*(n+1)
        for i in range(n):
            fmax[i+1] = max(fmax[i]*nums[i],fmin[i]*nums[i],nums[i])
            fmin[i+1] = min(fmax[i]*nums[i],fmin[i]*nums[i],nums[i])
        # 直接排除第一个的初始值
        return max(fmax[1:])

2708.一个小组的最大实力值

2708.一个小组的最大实力值

在这里插入图片描述

思路分析:该题并不能用动态规划来求解,而是使用贪心来解决

class Solution:
    def maxStrength(self, nums: List[int]) -> int:
        zheng = [i for i in nums if i > 0]
        fu = [i for i in nums if i < 0]
        # 先记录当前的单个的最大值,当没有正数的时候或者负数的个数为1的时候,结果就是这个max(nums)
        ans = max(nums)
        # 不连续的话,用不了动态规划
        tmp = 1
        # 将全部的正数乘起来
        for i in zheng:
            tmp *= i 
        # 负数的先升序排序,找到偶数对乘起来
        fu.sort()
        if len(fu) >= 2:
            for i in fu:
                tmp*= i 
            if len(fu) % 2 == 1:
                tmp //= fu[-1]
        # 还得考虑只有一个负数,以及没有正数的情况,更新
        if len(zheng) > 0 or len(fu) >= 2:
            ans = max(ans,tmp)
        return ans

相关文章:

  • Linux上Scapy完全指南:从入门到实战攻防
  • 基于SpringBoot实现的大学社团平台系统实现功能六
  • 【16届蓝桥杯寒假刷题营】第2期DAY1I
  • Visionpro 齿轮测量
  • frp与云服务器内网穿透
  • 网上购物|基于SprinBoot+vue的网上购物系统(源码+数据库+文档)
  • 大模型应用开发时如何调试提示词?
  • 深入解析504网关超时错误:服务器通信故障的诊断与解决
  • 每日复盘20250216
  • TensorFlow项目GPU运行 安装步骤
  • ThreadLocal详解
  • 2.buuctf [CISCN 2019 初赛]Love Math
  • Httprint 指纹识别技术:网络安全的关键洞察
  • 【三十三周】文献阅读:OpenPose: 使用部分亲和场的实时多人2D姿态估计
  • 【Spring Boot】网页五子棋项目中遇到的困难及解决方法
  • Express 中 res 响应方法详解
  • Docker 部署 MySQL 8 详细图文教程
  • JavaScript前端开发:构建交互式网页的魔法
  • 使用Actuator启动失败,Failed to start bean ‘documentationPluginsBootstrapper‘
  • 基于Django以及vue的电子商城系统设计与实现
  • 陈刚:推动良好政治生态和美好自然生态共生共优相得益彰
  • 马上评|家长抱婴儿值护学岗,如何避免“被自愿”?
  • 土耳其、美国、乌克兰三边会议开始
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 租车订单时隔7年从花呗免密扣费?“GoFun出行”引质疑
  • 九江宜春领导干部任前公示,3人拟提名为县(市、区)长候选人