当前位置: 首页 >文章 > 绝大升序子数组和
收藏
分享

绝大升序子数组和

举报小虎转载君小虎转载君发布于 2021-07-20678阅读0点赞
给你一个正整数组成的数组nums,返回nums中一个升序子数组的最大可能元素和。...

A real loser is someone so afraid of not wining, they don't even try.

真正的失败者是那些害怕失败不敢尝试的人。

问题描述

来源:LeetCode第1800题

难度:简单

给你一个正整数组成的数组nums,返回nums中一个升序子数组的最大可能元素和。

子数组是数组中的一个连续数字序列。

已知子数组[numsl,numsl+1,...,numsr-1,numsr],若对所有i(l<=i<r),numsi<numsi+1都成立,则称这一子数组为升序子数组。注意,大小为1的子数组也视作升序子数组。

示例 1:

输入:nums = [10,20,30,5,10,50]

输出:65

解释:[5,10,50] 是元素和最大的升序子数组,最大元素和为 65 。

示例 2:

输入:nums = [10,20,30,40,50]

输出:150

解释:[10,20,30,40,50] 是元素和最大的升序子数组,最大元素和为 150 。

示例 3:

输入:nums = [12,17,15,13,10,11,12]

输出:33

解释:[10,11,12] 是元素和最大的升序子数组,最大元素和为 33 。

示例 4:


输入:nums = [100,10,1]

输出:100

提示:

1<=nums.length<=100

1<=nums[i]<=100

问题分析

这题可以参照《486,动态规划解最大子序和》使用动态规划来解决,但实际上不需要dp数组也可以解决。这题让求的是升序子数组的最大和,解题思路如下


使用一个变量sum记录子数组的和

当递增的时候,sum就累加

当递减的时候,把当前元素的值赋值给sum,也就是重新开始统计

使用一个变量max记录遍历过的升序子数组的最大和

如下图所示

原理比较简单,来看下代码

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


本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号:数据结构和算法!


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户134,638人)

【10月】趣味MG动画制作训练营
距离开班仅剩2天27人已报名
文旅文创插画专项团练
距离开班仅剩5天38人已报名
【10月】零基础动态表情包创作训练营
距离开班仅剩14天26人已报名
猜你喜欢
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服
虎课
积分
免费学习91000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了34,977
并提交了123份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 91000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证