【动态规划系列】子数组的最大和

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一.题目描述
      • 1.题目信息
      • 2.示例
      • 3.提示
    • 二.题解
      • 1.动态规划解决
      • 2.解题思路
      • 3.关键点
    • 三.自我分析
      • 1.解题思路
      • 2.思考链路

一.题目描述

1.题目信息

题目地址

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

2.示例

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

输入:nums = [1]
输出:1

示例 3:

输入:nums = [5,4,-1,7,8]
输出:23

3.提示

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

二.题解

1.动态规划解决

public class LC_01_maxSubArray_53 {public int maxSubArray(int[] nums) {final int len = nums.length;int[] dp = new int[len];dp[0] = nums[0];int res = nums[0];for (int i = 1; i < len; i++) {dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);//更新最大值res = Math.max(res, dp[i]);}return res;}
}

2.解题思路

  1. 第一眼看到很懵逼
  2. 看了别人的题解,发现要找当前的数是否在结果里面
  3. 假定当前的数是在结果里面,并且是最后一个数
  4. 比较每个最后一个数的最大值

3.关键点

  • 子问题 1:以 −2 结尾的连续子数组的最大和是多少;

  • 子问题 2:以 1 结尾的连续子数组的最大和是多少;

  • 子问题 3:以 −3 结尾的连续子数组的最大和是多少;

  • 子问题 4:以 4 结尾的连续子数组的最大和是多少;

  • 子问题 5:以 −1 结尾的连续子数组的最大和是多少;

  • 子问题 6:以 2 结尾的连续子数组的最大和是多少;

  • 子问题 7:以 1 结尾的连续子数组的最大和是多少;

  • 子问题 8:以 −5 结尾的连续子数组的最大和是多少;

  • 子问题 9:以 4 结尾的连续子数组的最大和是多少。

三.自我分析

1.解题思路

if 有思路开写
else去看相关标签,确定具体解题方法if 有思路开写else看提示信息if 有思路开写else看答案

2.思考链路

  • 没有思路
  • 多做,多思考
  • 形成自己的肌肉记忆

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

自动化测试框架需要具备哪些功能?

我们经常听说使用了某某框架&#xff0c;那框架究竟是什么呢&#xff1f;框架有什么优势和功能&#xff1f; 什么是自动化框架 自动化框架是包含了自动化测试的组织、执行、监控以及报告等流程的工具&#xff0c;是由多个工具、库、模块和API等组成的工具集。自动化框架的目标…

线性代数入门与学习笔记

该内容为重拾部分线性代数知识的学习笔记&#xff0c;内容上更多的是为了解决问题而学习的内容&#xff0c;并非系统化的学习。 针对的问题为&#xff1a;Music算法推导求解过程中的矩阵计算知识。 学习的内容包括&#xff1a;矩阵原理、矩阵行列式、矩阵的秩、线性变换矩阵变换…

我的创作纪念日——多线程进阶分享

多线程-进阶 1. 锁的策略 1.1 乐观锁&悲观锁 乐观锁 预计在线程中数据大概率不会被其他线程拿去修改 对于加锁所作的准备较少。只有当修改的操作真正发生了&#xff0c;才会进行加锁操作 所以乐观锁适用于多读少写的情况&#xff0c;可以降低加锁频率&#xff0c;提升效…

继承与派生(2)

1.派生类的权限&#xff1a;派生类的成员函数可以访问基类的public和protected类型的成员&#xff0c;而派生类的对象只能访问public类型的成员 2.创建顺序&#xff08;先创造后析构&#xff09;&#xff1a;基类函数&#xff0c;派生类函数&#xff0c;组合类函数 类的组合按…

每日一练 | 华为认证真题练习Day145

1、一台路由器通过RIP、OSPF和静态路由都学习到了到达同一目的地址的路由。默认情况下&#xff0c;VRP将最终选择通过哪种协议学习到的路由&#xff1f; A. 三种协议学习到的路由都选择 B. 静态路由 C. OSPF D. RIP 2、如果网络管理员没有配置骨干区域&#xff0c;则路由器…

VUE+THREE.JS 点击模型相机缓入查看模型相关信息

点击模型相机缓入查看模型相关信息 1.引入2.初始化CSS3DRenderer3.animate 加入一直执行渲染4.点击事件4.1 初始化renderer时加入监听事件4.2 触发点击事件 5. 关键代码分析5.1 移除模型5.2 创建模型上方的弹框5.3 相机缓入动画5.4 动画执行 1.引入 引入模型所要呈现的3DSprite…

Dexie 查询sql速度优化

Dexie查询速度慢的原因主要一个优化点是复杂查询下的count执行。 以下摘自Dexie官方文档&#xff1a;https://dexie.org/docs/Collection/Collection.count() If executed on simple queries, the native IndexedDB ObjectStore count() method will be called (fast execution…

对标Gen-2!Meta发布新模型,进军文生视频赛道

随着扩散模型的飞速发展&#xff0c;诞生了Midjourney、DALLE 3、Stable Difusion等一大批出色的文生图模型。但在文生视频领域却进步缓慢&#xff0c;因为文生视频多数采用逐帧生成的方式,这类自回归方法运算效率低下、成本高。 即便使用先生成关键帧,再生成中间帧新方法。如…

Flink Window中典型的增量聚合(ReduceFunction / AggregateFunction)

一、什么是增量聚合函数 在Flink Window中定义了窗口分配器&#xff0c;我们只是知道了数据属于哪个窗口&#xff0c;可以将数据收集起来了&#xff1b;至于收集起来到底要做什么&#xff0c;其实还完全没有头绪&#xff0c;这也就是窗口函数所需要做的事情。所以在窗口分配器…

听GPT 讲Rust源代码--src/tools(9)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/apply_demorgan.rs 在Rust源代码中&#xff0c;apply_demorgan.rs文件位于rust-analyzer工具的ide-assists库中&#xff0c;其作用是实现一个辅助函数&#xff0c;用于在代码中应用De Morgan定律的变换。 …

Android : 篮球记分器app _简单应用

示例图&#xff1a; 1.导包 在build.gradle 中 加入 // 使用androidx版本库implementation androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03 2. 开启dataBinding android{...// 步骤1.开启data bindingdataBinding {enabled true}...} 3.写个类继承 ViewModel pac…

自下而上-存储全栈(TiDB/RockDB/SPDK/fuse/ceph/NVMe/ext4)存储技术专家成长路线

数字化时代的到来带来了大规模数据的产生&#xff0c;各行各业都面临着数据爆炸的挑战。 随着云计算、物联网、人工智能等新兴技术的发展&#xff0c;对存储技术的需求也越来越多样化。不同应用场景对存储的容量、性能、可靠性和成本等方面都有不同的要求。具备存储技术知识和技…

机器学习-聚类问题

前言 聚类算法又叫做”无监督分类“&#xff0c;目标是通过对无标记训练样本来揭示数据的内在性质及 规律&#xff0c;为进一步的数据分析提供基础。 Kmeans 作为聚类算法的典型代表&#xff0c;Kmeans可以说是最简单的聚类算法&#xff0c;没有之一&#xff0c;那她是怎么完…

MySQL为何偏爱B+树索引

一、MySQL、B树概念 MySQL是一种关系型数据库&#xff0c;它使用SQL语言来操作数据。SQL语言可以实现对数据的增删改查等操作&#xff0c;但是如果数据量很大&#xff0c;那么这些操作的效率就会很低。为了提高效率&#xff0c;MySQL引入了索引的概念。 索引是一种数据结构&am…

人体关键点检测1:人体姿势估计数据集

人体关键点检测1&#xff1a;人体姿势估计数据集 目录 人体关键点检测1&#xff1a;人体姿势估计数据集 1.人体姿态估计 2.人体姿势估计数据集 &#xff08;1&#xff09;COCO数据集 &#xff08;2&#xff09;MPII数据集 &#xff08;3&#xff09;Human3.6M &#xf…

MS5228/5248/5268:2.7V 到 5.5V、 12/14/16Bit、内置基准、八通道数模转换器

MS5228/MS5248/MS5268 是一款 12/14/16bit 八通道输出的电压型 DAC &#xff0c;内部集成上电复位电路、可选内部基准、接口采用四线串口模式&#xff0c; 最高工作频率可以到 40MHz &#xff0c;可以兼容 SPI 、 QSPI 、 DSP 接口和 Microwire 串口。输出接到一个 …

<习题集><LeetCode><链表><2/19/21/23/24>

目录 2. 两数相加 19. 删除链表的倒数第 N 个结点 21. 合并两个有序链表 23. 合并 K 个升序链表 24. 两两交换链表中的节点 2. 两数相加 https://leetcode.cn/problems/add-two-numbers/ public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//head是cur链表头节点…

Go语言实现深度学习的正向传播和反向传播

文章目录 开发前言开发理论图解理论数据类型数学函数数据节点统一抽象变量数据节点常量数据节点单目运算封装双目运算封装算子节点统一抽象基础算子加法算子减法算子乘法算子除法算子指数算子对数算子正切算子正弦算子余弦算子数据流图正向传播反向传播正向训练反向训练运行示例…

船舶机电设备振动数据采集监控系统解决方案

船舶运行中&#xff0c;通常需要通过振动数据采集系统对船舶的各个机电设备运行进行监控&#xff0c;有助于在设备故障时快速预警&#xff0c;进行诊断、分析和维护&#xff0c;保证船舶机电设备正常工作&#xff0c;从而确保工作人员及船舶的安全。 船舶各种机电设备会产生大…

【模型量化】神经网络量化基础及代码学习总结

1 量化的介绍 量化是减少神经网络计算时间和能耗的最有效的方法之一。在神经网络量化中&#xff0c;权重和激活张量存储在比训练时通常使用的16-bit或32-bit更低的比特精度。当从32-bit降低到8-bit&#xff0c;存储张量的内存开销减少了4倍&#xff0c;矩阵乘法的计算成本则二…