leetcode每日一练-第53题-最大子数组和

news2024/10/5 16:32:05

一、思路

动态规划

二、解题方法

使用了两个变量 maxSumcurrentSum 来分别记录全局的最大和和当前连续子数组的和。遍历数组时,我们不断更新 currentSum,并比较是否需要更新 maxSum。最后,maxSum 就是最大的连续子数组和。

三、code

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
    int n=nums.size();
    if(n==0)
    {
        return 0;
    }

    int maxSum=nums[0];// 初始化最大和为第一个元素
    int currSum=nums[0];// 当前连续子数组的和
    for(int i=1;i<n;++i)
    {
        // 对于每个元素,判断是继续扩展当前子数组,还是从当前元素重新开始一个子数组
        currSum=std::max(nums[i],currSum+nums[i]);
        // 更新最大和
        maxSum=std::max(maxSum,currSum);
    }
    return maxSum;

    }
};

=========================================================================学到的知识:

1、currentSum = std::max(nums[i], currentSum + nums[i]);

这行代码的作用是计算当前连续子数组的和 currentSum,它有两个选择:

  1. 从当前元素 nums[i] 开始一个新的连续子数组,这是 nums[i] 的值。
  2. 将当前元素 nums[i] 添加到之前的连续子数组中,即 currentSum + nums[i]

这两个选择中,我们选择较大的那个作为当前连续子数组的和 currentSum。这是因为我们希望找到的是具有最大和的连续子数组,如果将当前元素加入之前的连续子数组后和更大,那么就继续扩展当前连续子数组;如果当前元素更大,说明开始一个新的子数组可能会更有利于获得更大的和。

总之,这行代码的作用是在每个位置 i 更新当前连续子数组的和,以便后续比较是否需要更新最大和 maxSum

 

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

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

相关文章

视频监控/视频汇聚/视频云存储EasyCVR平台接入国标GB协议后出现断流情况,该如何解决?

视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。安防监控平台EasyCVR既具备传统安防视频监控的能…

【js】防抖和节流的使用场景和区别:

文章目录 一、防抖 &#xff08;多次触发 只执行最后一次&#xff09;二、节流 &#xff08;规定时间内 只触发一次&#xff09;三、防抖和节流的使用场景【1】防抖&#xff08;debounce&#xff09;【2】节流&#xff08;throttle&#xff09; 一、防抖 &#xff08;多次触发 …

功率放大器主要要求有哪些

功率放大器是电子设备中常用的组件&#xff0c;用于将输入信号的功率放大到更高的水平。为了确保功率放大器的正常工作和性能表现&#xff0c;它需要满足一系列要求。下面西安安泰将详细介绍功率放大器的主要要求&#xff0c;希望大家可以对功率放大器有清晰的认识。 一、功率放…

hadoop3.3.1单机版环境搭建详细流程记录

1、在centos7中创建必要的目录&#xff1b; 2、上传JDK安装包到tools目录&#xff1b; 3、解压JDK到/opt/server/目录&#xff1b; tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/server/ 4、“vim&#xff1a;未找到命令”的解决办法&#xff1b; 安装vim即可&#xff1b; …

2023年产业地产研究报告

第一章 行业概况 1.1 定义 产业地产是一种特殊类型的房地产&#xff0c;它以土地为基本要素&#xff0c;以企业为投资、开发、运营的主要主体。这种类型的房地产以区域“产、城、人”的有效聚合和持续发展为核心&#xff0c;产业运营和空间运营为主要盈利途径。产业地产的主要…

【串口通信】K210与STM32串口通信、K210与OpenMV串口通信

【串口通信】K210与STM32串口通信、K210与OpenMV串口通信 串口通信前言为何需要串口通信 K210如何进行串口通信K210串口配置K210串口发送相关定义K210串口发送测试K210串口接收相关定义K210串口接收测试 STM32如何进行串口通信STM32串口配置STM32串口发送相关定义STM32串口发送…

定时任务job (现成直接用)

1. 任务调度的2种方式 1. bean调用示例: 对应的类上加Component或Service注解, 类名.方法名(ryTask.ryNoParams) 类名首字母小写; 该类必须要在com.ruoyi 包下, 因为有校验 2. 权限类名调用示例: com.ruoyi.quartz.task.RyTask.ryNoParams 注意: class(类名)调用的时候, 只能调…

C++多态案例3---电脑组装

案例描述: 电脑主要组成部件为 CPU (用于计算) &#xff0c;显卡 (用于显示) &#xff0c;内存条 (用于存储)将每个零件封装出抽象基类&#xff0c;并且提供不同的厂商生产不同的零件&#xff0c;例如Intel厂商和Lenovo厂商创建电脑类提供让电脑工作的函数&#xff0c;并且调用…

uni-app 之 vue语法

uni-app 之 vue语法 image.png --- v-html 字符 --- image.png <template><view><view>{{title}}</view>--- v-html 字符 ---<view>{{title2}}</view><view v-html"title2"></view><view>{{arr}}</view&g…

【FusionInsight 迁移】HBase从C50迁移到6.5.1(02)C50上准备FTP Server

【FusionInsight 迁移】HBase从C50迁移到6.5.1&#xff08;02&#xff09;C50上准备FTP Server HBase从C50迁移到6.5.1&#xff08;02&#xff09;C50上准备FTP Server登录老集群FusionInsight C50的Manager准备FTP User准备FTP Server HBase从C50迁移到6.5.1&#xff08;02&am…

js+html实现打字游戏v2

实现逻辑&#xff0c;看jshtml实现打字游戏v1&#xff0c;在此基础之上增加了从文件读取到的单词&#xff0c;随机选取10个单词。 效果演示 上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

系统架构设计师(第二版)学习笔记----系统架构概述

【原文链接】系统架构设计师&#xff08;第二版&#xff09;学习笔记----系统架构概述 文章目录 一、系统架构的定义与发展历程1.1 架构的定义1.2 架构设计的作用1.3 架构设计产生的背景1.4 软件架构的发展历程1.5 模块化开发方法1.6 模块法方法分解模块遵循的原则1.7 软件工程…

SQLite简单介绍

一.简单介绍 SQLite是一款轻型的数据库&#xff0c;是遵守ACID的关系型数据库管理系统&#xff0c;它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的&#xff0c;而且已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&…

CC-TAIX01 HONEYWELL 霍尼韦尔连接工厂热智商远程监测系统

CC-TAIX01 HONEYWELL 霍尼韦尔连接工厂热智商远程监测系统 -霍尼韦尔宣布霍尼韦尔连接工厂热智商,一种基于云的远程监测系统,旨在监测和管理关键的热过程数据。这是霍尼韦尔资产绩效管理(APM)投资组合的一部分。 热智商是工业和商业热应用的远程监测解决方案。它将燃烧设备连…

51单片机热水器温度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机热水器温度控制系统仿真设计 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单 &&下载链接 51单片机热水器温度控制系统仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#x…

OSCS 安全周报第 58 期:VMware Aria Operations SSH 身份验证绕过漏洞 (CVE-2023-34039)

​ 本周安全态势综述 OSCS 社区共收录安全漏洞 3 个&#xff0c;公开漏洞值得关注的是 VMware Aria Operations SSH 身份验证绕过漏洞( CVE-2023-34039 )、Apache Airflow Spark Provider 反序列化漏洞( CVE-2023-40195 )。 针对 NPM 仓库&#xff0c;共监测到 324 个不同版本…

Activiti7进阶

Activiti进阶 一、流程实例 什么是流程实例 流程实例&#xff08;ProcessInstance&#xff09;代表流程定义的执行实例。 一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。 例如&#xff1a;用户或程序按照流程定义内容发起一个流程&a…

鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显…

JavaWeb知识梳理(后端部分)

JavaWeb 静态web资源&#xff08;如html 页面&#xff09;&#xff1a;指web页面中供人们浏览的数据始终是不变。 动态web资源&#xff1a;指web页面中供人们浏览的数据是由程序产生的&#xff0c;不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术&#xff1…

NAT地址转换,路由器作为出口设备,实现负载分担

路漫漫其修远兮&#xff0c;吾将上下而求索 一个善于创造的人&#xff0c;一定是一个善于分享的人。 今天整理了一个实验&#xff0c;具备NAT地址转换&#xff0c;路由器作为出口设备&#xff0c;实现负载分担&#xff0c;实现路由策略 目录 实验图 实验要求 实验配置 基…