【CT】LeetCode手撕—53. 最大子数组和

news2024/7/11 15:05:06

目录

  • 题目
  • 1-思路
  • 2- 实现
    • ⭐53. 最大子数组和——题解思路
  • 3- ACM 实现


题目

  • 原题连接:53. 最大子数组和

1-思路

动规五部曲

  • 1. 定义 dp 数组
    • dp[i] 含义为:下标为 i 的数组的最大子数组和
  • 2. 递推公式
    • 因为所求的是最大子数组的和,即当前 nums 可加可不加,则需要在 dp[i-1]+nums[i]nums[i] 两者中取一个较大的
    • dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);
  • 3. 初始化
    • dp[0] = nums[0]
  • 4. 遍历顺序
    • i = 0 遍历到 n-1

2- 实现

⭐53. 最大子数组和——题解思路

在这里插入图片描述

class Solution {
    public int maxSubArray(int[] nums) {
        // 1. 定义 dp数组
        // 
        int[] dp = new int[nums.length];

        // 2.递推公式
        // dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);

        // 3.初始化
        dp[0] = nums[0];

        // 4. 遍历顺序
        for(int i = 1 ; i < nums.length;i++){
            dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);
        }

        int res = nums[0];
        for(int i:dp){
            res = Math.max(res,i);
        }
        return res;
    }
}

3- ACM 实现

public class maxSubNums {


    // 求 最大子数组和
    public static int maxSub(int[] nums){
        // 1.dp数组
        int[] dp = new int[nums.length];

        // 2.递推公式
        // dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);

        // 3.初始化
        dp[0] = nums[0];

        // 4.遍历顺序
        int res = nums[0];
        for(int i = 1 ; i < nums.length;i++){
            dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);
            res = Math.max(res,dp[i]);
        }
        return res;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入数组的长度");
        int n = sc.nextInt();
        int[] nums = new int[n];
        for(int i = 0 ; i < n;i++){
            nums[i] = sc.nextInt();
        }
        System.out.println("最大子数组和为"+maxSub(nums));
    }
}

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

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

相关文章

转型AI产品经理(8):“习惯形成模型”如何应用在Chatbot产品中

习惯形成模型是心理学中用来解释习惯如何产生、发展以及如何被改变的理论框架。它通常包含以下几个关键阶段&#xff1a; 1. 触发 习惯循环的开始是一个触发因素&#xff0c;它可以是外部的&#xff08;如时间、地点、情绪状态、特定的人或物&#xff09;或内部的&#xff08…

红海云入选《2024中国数据智能产业图谱1.0》

近日&#xff0c;国内知名大数据产业创新服务媒体数据猿携手上海大数据联盟重磅发布了《2024中国数据智能产业图谱1.0》。红海云凭借在人力资源数字化应用领域的卓越产品创新与服务&#xff0c;成功入选图谱「 企业应用-人力资源」板块。 《2024中国数据智能产业图谱1.0》由数…

深度学习(一)——使用Python读取图片

一、Python学习两大道具 1. dir()工具 作用&#xff1a;支持打开package&#xff0c;看到里面的工具函数 示例&#xff1a; (1) 输出torch库包含的函数 dir(torch)(2) 输出torch.AVG函数中的参数 dir(torch.AVG)2. help()工具 作用&#xff1a;说明书&#xff0c;查看库中…

代码随想录算法训练营第35天|● 1005.K次取反后最大化的数组和 ● 134. 加油站● 135. 分发糖果

K次取反后最大化的数组 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 本题首先想到尽可能将负的数变成正数&#xff0c;这样才能得到最大和,将数组进行按绝对值大小进行降序排序&#xff0c;若遇到负数将其取反后k--&#xff0c;若后面大于0 &…

7.枚举和模式匹配

一、enum枚举 1.1 定义枚举类型和对应的数据 //定义枚举 #[derive(Debug)] enum IpAddrKind{IPv4,IPv6, }struct Ipaddr{kind: IpAddrKind, //设置kind为IpAddrKind的枚举类型address: String, }fn route(ip_addr: &Ipaddr){println!("ip_type {:#?}", ip_a…

arxiv提交报错解决指南

- 编译时无错误 - 所有文件和图片文件都在同一目录下 - 生成.bbl文件 overleaf将参考文献格式bib转bbl&#xff08;bibitem&#xff09;_overleaf bbl文件-CSDN博客 - .tex文件、.bib文件、.bbl文件 的文件名要一致&#xff0c;修改.bib文件名记得在.tex文件中修改bibliograp…

成都产业园运营,多样活动助力生态建设

树莓集团在成都产业园的运营中&#xff0c;通过举办多样化的活动&#xff0c;积极助力产业园的生态建设。 企业服务活动 企业间交流会议与项目对接会&#xff1a;树莓集团定期组织企业间的交流会议和项目对接会&#xff0c;旨在促进不同企业之间的信息沟通和合作机会&#xff…

自动控制原理【期末复习】

1.结构图化简 &#xff08;左图中左边的成为比较点&#xff0c;右面的成为引出点&#xff09; &#xff08;右图中注意反馈通路的符号是正是负&#xff09; H1的引出点后移&#xff0c;找H1的反馈通路&#xff0c;观察在原反馈通路上加上了G4,所以乘上1/G4 2.传递函数 求误差传…

5.5 业务流程和业务逻辑设计

一、引言 1.1 项目背景 经过上述的论述&#xff0c;我们讨论一下业务流程和业务逻辑设计&#xff0c;通过合理的业务流程设计和业务逻辑设计&#xff0c;可以提高用户的购物体验&#xff0c;降低用户的操作成本&#xff0c;并确保用户的购物行为符合平台的规则和要求。同时&a…

移民月贺礼!世贸通EB-5移民项目首批投资人获批了

特大喜讯 第八届移民月正在如火如荼地开展中 世贸通迎来了一个令人振奋的好消息 为移民月送来了一份大礼 增添了一抹格外耀眼的光彩 由世贸通担任大中华区独家代理的 「佛罗里达湖畔犹太社区」EB-5乡村项目 迎来首批投资人I-526E获批 世贸通恭喜获得I-526E批准的投资家庭…

分享视频的二维码怎么制作?扫码看视频的生成技巧

视频现在很多人会通过二维码的方式来分享&#xff0c;与使用软件、网盘、u盘等方式相比&#xff0c;将视频转换成二维码的方式可以更加简单的实现内容的传播与分享&#xff0c;并且有效提升用户体验。视频制作二维码可以提升内容的安全性&#xff0c;无需用户去下载存储视频&am…

【code-server】Code-Server 安装部署

Code-Server 安装部署 1.环境准备 可以参考 https://coder.com/docs/code-server/install code-server的安装流程进行安装&#xff0c;主机环境是 Centos7 建议使用 docker 方式进行安装&#xff0c;可能会出现如下报错&#xff0c;需要升级 GNC 的版本&#xff0c;由于影响交…

怎么在电脑上修改图片大小?图片在线处理大小的方法

图片是目前很常用的一种信息或者内容的展现方式&#xff0c;所以在很多的场景中都会应用&#xff0c;但是在使用图片的时候&#xff0c;经常会受到图片大小限制的要求&#xff0c;比如需要将图片尺寸修改到指定尺寸才可以上传&#xff0c;那么在线改图片大小如何实现呢&#xf…

国内核心期刊基本情况

对于广大师生来说&#xff0c;发表核心期刊论文是当前阶段绕不开的任务&#xff0c;有的高校晋升副高需要发表核心论文5篇以上&#xff0c;有的学校硕博研究生毕业条件必须是一作发核心。很多人对核心的理解仅停留在“北核、南核”&#xff0c;其他的一概不知。但是我国的核心期…

在Java中,子类继承了父类,子类和父类都定义了一个静态方法,一个午无参构造方法,一个play方法,如果调用子类的play方法的话执行顺序是什么

静态方法的调用: 静态方法是与类本身相关的,而不是与具体的对象实例相关。当调用子类的play方法时,首先会查找子类自身是否有定义静态方法,如果有,则执行子类的静态方法。如果子类没有定义静态方法,则会向上查找父类,执行父类的静态方法。 构造方法的调用: 当创建子类对象时,…

Autohotkey使用记录

文章目录 1. 安装1.1 autohotkey1.2 vscode需要安装的插件 3. 函数使用3.1 按键3.2 MouseMove 4. Bug分析4.1 A_TimeSincePriorHotkey 1. 安装 1.1 autohotkey 下载安装即可 1.2 vscode需要安装的插件 3. 函数使用 3.1 按键 各个按键的代词使用关键字搜索&#xff1a;Hotk…

AnythingLLM 的 Docker 使用

AnythingLLM是使用大语言模型LLM的一站式简便框架。官网的介绍如下&#xff1a; AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no code or infrastructure headaches. 1. 使用官方docker 最方便的方法是使…

AiP74LVC1T45GB236.TR SOT23-6缓冲器/驱动器双电源接口电平转换

AIP74LVC1T45GB236.TR 是一款电平转换芯片&#xff0c;它的应用领域非常广泛&#xff0c;主要包括&#xff1a; 1. 嵌入式系统&#xff1a;在嵌入式系统中&#xff0c;由于不同的外设可能工作在不同的电源电压下&#xff0c;该电平转换器可用于确保微控制器和其他逻辑电路之间的…

复制网页文字和图片到Word中-Word插件-大珩助手

问题整理&#xff1a; 为什么从浏览器的网页上复制文字和图片后&#xff0c;在Word中粘贴时图片无法显示&#xff1f;有没有插件可以将网页中的文字和图片复制到Office Word 中&#xff1f; Word大珩助手是一款功能丰富的Office Word插件&#xff0c;旨在提高用户在处理文档时…

垫付商贩任务补单平台补单系统网站源码提供

垫付商贩任务补单平台补单系统网站源码提供