news 2026/4/16 1:12:19

Leetcode 剑指 Offer II 161. 连续天数的最高销售额

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode 剑指 Offer II 161. 连续天数的最高销售额

题目难度: 简单

原题链接

今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号算法精选里回复剑指offer2就能看到该系列当前连载的所有文章了, 记得关注哦~

题目描述

某公司每日销售额记于整数数组 sales,请返回所有 连续 一或多天销售额总和的最大值。

要求实现时间复杂度为 O(n) 的算法。

示例 1:

  • 输入:sales = [-2,1,-3,4,-1,2,1,-5,4]
  • 输出:6
  • 解释:[4,-1,2,1] 此连续四天的销售总额最高,为 6。

示例 2:

  • 输入:sales = [5,4,-1,7,8]
  • 输出:23
  • 解释:[5,4,-1,7,8] 此连续五天的销售总额最高,为 23。

提示:

  • 1 <= arr.length <= 10^5
  • -100 <= arr[i] <= 100

题目思考

  1. 如何记录最大和?
  2. 可以不使用额外空间吗?

解决方案

思路

  • 题目要求复杂度 O(N), 那么我们就不能使用暴力两重循环求当前前缀和的方法了, 那样的复杂度是 O(N^2)
  • 那如何做到一次遍历就计算出结果呢?
  • 假设当前以 i 结尾的最大和是 sm, 那么到 i+1 的时候, 以它结尾的最大和可以有两种选择:
    • 在 sm 的基础上加上 i+1 的值
    • 也可以另起炉灶, 从 i+1 开始计算 (对应的是sm < 0的情况)
  • 也即 i+1 结尾的最大和就是max(sm+arr[i+1], arr[i+1])
  • 它就是新的 sm 值, 这样就不需要额外的空间
  • 而最终的结果自然就是max(以各个下标结尾的最大和), 可以在遍历的时候顺带一起判断
  • 以上就是典型的动态规划的思想, 利用前面的计算结果来推导出当前的结果
  • 下面的代码对必要步骤有详细的解释, 方便大家理解

复杂度

  • 时间复杂度O(N)
    • 只需要遍历整个数组一遍
  • 空间复杂度O(1)
    • 不需要额外空间

代码

classSolution:defmaxSales(self,sales:List[int])->int:# 初始化最终结果为负无穷, 因为可能数组全部都是负数res=-float('inf')# 初始化和为0sm=0forxinsales:# 计算当前结尾的最大值sm=max(sm+x,x)# 更新最终结果为当前最大的最大值res=max(res,sm)returnres

大家可以在下面这些地方找到我~😊

我的 GitHub

我的 Leetcode

我的 CSDN

我的知乎专栏

我的头条号

我的牛客网博客

我的公众号: 算法精选, 欢迎大家扫码关注~😊

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:14:17

新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问

目录 1. 基础设施层&#xff1a;OpenClaw 运行环境的初始化2. 算力与模型层&#xff1a;蓝耘 MaaS 平台的接入配置2.1 协议适配与 JSON 配置 3. 编排层&#xff1a;OpenClaw 初始化与 Onboarding 流程3.1 模式选择与基础设置3.2 模型提供商与应用集成策略3.3 技能库&#xff08…

作者头像 李华
网站建设 2026/4/16 11:14:38

php python+vue网上房屋中介系统

目录 系统架构概述核心功能模块技术实现细节部署与扩展适用场景 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 系统架构概述 网上房屋中介系统采用前后端分离架构&#xff0c;后端使用PHP或Python处理业…

作者头像 李华
网站建设 2026/4/16 14:50:00

php python+vue网上汽车销售系统的开发

目录 开发网上汽车销售系统的技术栈系统功能模块后端开发技术前端开发技术数据库设计系统部署与维护安全性与性能优化 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 开发网上汽车销售系统的技术栈 PHP、…

作者头像 李华
网站建设 2026/4/16 13:04:41

Hadoop vs Spark:哪种大数据框架更适合物联网数据处理?

Hadoop vs Spark&#xff1a;哪种大数据框架更适合物联网数据处理&#xff1f; 关键词&#xff1a;Hadoop、Spark、物联网数据处理、批处理、流处理、内存计算、分布式架构 摘要&#xff1a;物联网&#xff08;IoT&#xff09;的爆发式发展带来了海量多源异构数据&#xff0c;如…

作者头像 李华
网站建设 2026/4/15 16:34:02

数字图像处理---压缩编码

核心比喻&#xff1a;整理行李箱 你要出远门&#xff0c;但行李箱很小。为了装下所有东西&#xff0c;你必须&#xff1a; 扔掉不必要的东西&#xff08;比如多余的包装盒&#xff09;。 用更高效的方式打包&#xff08;比如把衣服卷起来而不是平铺&#xff09;。 压缩编码…

作者头像 李华
网站建设 2026/4/16 11:14:49

小程序计算机毕设之基于springboot+小程序的自助停车缴费系统小程序的设计与实现基于SpringBoot的停车管理微信小程序系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华