最大子数组和【力扣53】

一、解题思路

Max[i]表示:以nums[i]为开头的所有连续子数组和的最大值。

由此可以推出Max[i-1]和Max[i]的关系:

若Max[i]>=0:Max[i-1]=nums[i-1]+Max[i];

否则:Max[i-1]=nums[i-1];

则ans=MAX(Max[0]、Max[1]、......、Max[n-1])

代码示例:

class Solution {
public:int maxSubArray(vector<int>& nums) {int max,sum,n;n=nums.size();sum=nums[n-1];max=nums[n-1];for(int i=n-2;i>=0;i--){if(max>=0){max+=nums[i];}else{max=nums[i];}if(sum<max){sum=max;}}return sum;}
};

二、拓展

同样的思路,可以计算Min[i]:以nums[i]为开头的所有连续子数组和的最小值。

这道题可以和力扣以下的题目相互照应做,其核心思路相同:

1749. 任意子数组和的绝对值的最大值 - 力扣(LeetCode)icon-default.png?t=N6B9https://leetcode.cn/problems/maximum-absolute-sum-of-any-subarray/1749题:该题要求计算连续子数组和的绝对值的最大值ans,其中ans可以是最大值的绝对值,也可以是最小值的绝对值。因此ans=MAX(abs(Max[0])、......、abs(Max[n-1]),abs(Min[0])、......、abs(Min[n-1]))。

1749题另一个解题思路:

任意子数组和的绝对值的最大值【力扣1749】_叫小侯的小白程序员的博客-CSDN博客icon-default.png?t=N6B9https://blog.csdn.net/qq_44228301/article/details/132190945这个思路中Min[i]、Max[i]的意义和本题是不同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java try-with-resources自动关闭资源

try-with-resources 是 Java 7 引入的一种语法&#xff0c;用于自动关闭实现了 AutoCloseable 接口的资源。它可以简化代码中关闭资源的操作&#xff0c;确保资源得到正确释放&#xff0c;避免内存泄漏。 使用 try-with-resources 的语法如下&#xff1a; try (资源的声明和初…

RISC-V走向开放服务器规范

原文&#xff1a;RISC-V Moving Toward Open Server Specification 作者&#xff1a;Agam Shah 转载自&#xff1a;https://www.hpcwire.com/2023/07/24/risc-v-moving-toward-open-server-specification/ 中文翻译&#xff1a; 2023年7月24日 RISC-V International目前正…

亚马逊 EC2服务器下部署java环境

1. jdk 1.8 安装 1.1 下载jdk包 官网 Java Downloads | Oracle tar.gz 包 下载下来 1.2 本地连接 服务器 我用的是亚马逊的ec2 系统是 ubuntu 的 ssh工具是 Mobaxterm , 公有dns 创建实例时的秘钥 链接 Mobaxterm 因为使用的 ubuntu 所以登录的 名称 就是 ubuntu 然后 …

ts项目中引入js包,如vue-simple-uploader

有些包如vue-simple-uploader&#xff0c;使用npm下载后&#xff0c;npm仓库中没有对应的types类型声明&#xff0c;会报错&#xff0c;没有找到对应的types类型文件。 解决&#xff1a; 在项目根目录下&#xff0c;创建自定义的类型声明文件&#xff0c;如&#xff0c;self-…

【Ubuntu】简化反向代理和个性化标签页体验

本文将介绍如何使用Docker部署Nginx Proxy Manager和OneNav&#xff0c;两个功能强大且易用的工具。Nginx Proxy Manager用于简化和管理Nginx反向代理服务器的配置&#xff0c;而OneNav则提供个性化的新标签页体验和导航功能。通过本文的指导&#xff0c;您将学习如何安装和配置…

vue组件通信的方式?

父子通信&#xff1a; 1、父传子&#xff1a;在父组件的子组件标签绑定一个自定义属性&#xff0c;子组件通过props获取父组件传递的数据。 //父 <child :data"list" del"idx > list.splice(idx, 1)" ref"child" :isShow.sync"isS…

Redis可以用作数据库吗?它的适用场景是什么?

是的&#xff0c;Redis可以用作数据库。虽然Redis通常被认为是一个内存数据库&#xff08;in-memory database&#xff09;&#xff0c;但它也可以通过持久化机制将数据保存在磁盘上&#xff0c;以便在重启后恢复数据。 Redis的适用场景包括但不限于以下几个方面&#xff1a; …

程序使用Microsoft.XMLHTTP对象请求https时出错解决

程序中使用Microsoft.XMLHTTP组件请求https时出现如下错误&#xff1a; 出错程序代码示例&#xff1a; strUrl "https://www.xxx.com/xxx.asp?id11" dim objXmlHttp set objXmlHttp Server.CreateObject("Microsoft.XMLHTTP") objXmlHttp.open "…

电脑关机程序

//关机程序 1、电脑运行起来后&#xff0c;1分钟内关机。 2、如果输入&#xff1a;我是猪。就取消关机。 #include<stdio.h> #include<string.h> int main() { char input[20] { 0 }; system("shutdown -s -t 60"); again: printf(&quo…

Cesium相机理解

关于cesium相机&#xff0c;包括里面内部原理网上有很多人讲的都很清楚了&#xff0c;我感觉这两个人写的都挺好得&#xff1a; 相机 Camera | Cesium 入门教程 (syzdev.cn) Cesium中的相机—setView&lookAtTransform_cesium setview_云上飞47636962的博客-CSDN博客上面这…

【Linux】进程间通信——system V共享内存

目录 写在前面的话 System V共享内存原理 System V共享内存的建立 代码实现System V共享内存 创建共享内存shmget() ftok() 删除共享内存shmctl() 挂接共享内存shmat() 取消挂接共享内存shmdt() 整体通信流程的实现 写在前面的话 上一章我们讲了进程间通信的第一种方式…

Linux基础学习

文章目录 Linux命令学习Linux环境准备Linux命令行学习Linux命令行格式与文件系统linux实用命令笔记Linux文件权限查看 Linux命令学习 理解Linux命令是什么 &#xff08;图形化的操作&#xff0c;文件查看&#xff0c;浏览器打开&#xff09; 你打开一个谷歌浏览器&#xff0c;…

微积分入门:总结归纳汇总(一)

基础 标准符号约定: ( s i n x ) n (sinx)^n (sinx)

Spring Aop组成部分

Spring Aop &#xff08;Aspect orirnted Programming&#xff09;面向切面编程,是对面向对象编程的一种补充&#xff0c;是一种编程思想&#xff0c;是对某一类的事情的集中处理。 比如用户登录状态的验证状态&#xff0c;在之前写servlet版本的博客系统&#xff0c;这里就有…

模拟实现消息队列项目(系列4) -- 服务器模块(内存管理)

目录 前言 1. 创建MemoryDataCenter 2. 封装Exchange 和 Queue方法 3. 封装Binding操作 4. 封装Message操作 4.1 封装消息中心集合messageMap 4.2 封装消息与队列的关系集合queueMessageMap的操作 5. 封装未确认消息集合waitMessage的操作 6. 从硬盘中恢复数据到内存中 7. Memo…

ceph pg inconsistent修复(unexpected clone)

问题概述&#xff1a; ceph -s 显示pg 10.17 inconsistent 且命令ceph pg repair 10.17无法修复&#xff0c;/var/log/ceph/cep-osd.3.log报错内容如下&#xff1a; pg 10.17 osd [3,4] 权威副本osd&#xff1a;3 repair 10.17 10:e889b16a:::rbd_data.88033092ad95.00000000…

Linux 命令之 - scp(从远端机器拉取数据)

scp是secure copy的简写&#xff0c;用于在Linux下进行远程拷贝文件的命令&#xff0c;和它类似的命令有cp&#xff0c;不过cp只是在本机进行拷贝不能跨服务器&#xff0c;而且scp传输是加密的。 命令格式&#xff1a; scp [参数] [原路径] [目标路径]从本地服务器复制到远程…

面试攻略,Java 基础面试 100 问(一)

面向对象的特征有哪些方面? 抽象(Encapsulation)&#xff1a;封装的目的是为了保证变量的安全性&#xff0c;使用者不必在意具体实现细节&#xff0c;而只是通过外部接口即可访问类的成员 如果不进行封装&#xff0c;类中的实例变量可以直接查看和修改&#xff0c;可能给整个…

工具推荐:Wireshark网络协议分析工具(对比tcpdump)

文章首发地址 Wireshark是一款开源的网络协议分析工具&#xff0c;可以捕获网络数据包并对其进行详细的分析和解释。下面是Wireshark的详细介绍&#xff1a; Wireshark 工作原理 Wireshark通过捕获网络接口上的数据包&#xff0c;将其转换为可读的格式&#xff0c;并在界面…