定个小目标之刷LeetCode热题(13)

news/2024/9/24 6:49:33/

今天来看看这道题,介绍两种解法

第一种动态规划,代码如下

class Solution {public int maxSubArray(int[] nums) {int pre = 0, maxAns = nums[0];for (int x : nums) {// 计算当前最大前缀和pre = Math.max(pre + x, x);// 更新最大前缀和maxAns = Math.max(maxAns, pre);}return maxAns;}
}

第二种前缀和,这种方法是评论里的大佬想出来的,可以学习一下,只要思想就是分别维护三个变量,前缀和、最小前缀和、前缀和 - 最小前缀和,其中答案就是前缀和 - 最小前缀和里最大的那个数,看代码和动态规划的思想有点类似,代码如下

class Solution {public int maxSubArray(int[] nums) {int ans = Integer.MIN_VALUE, preSum = 0, minPreSum = 0;for (int num : nums) {// 计算前缀和preSum += num;// 计算前缀和 - 最小前缀和ans = Math.max(ans, preSum - minPreSum);// 记录最小前缀和minPreSum = Math.min(minPreSum, preSum);}return ans;}
}

题目链接:题单 - 力扣(LeetCode)全球极客挚爱的技术成长平台


http://www.ppmy.cn/news/1468727.html

相关文章

构建高效爬虫系统:设计思路与案例分析

构建高效爬虫系统:设计思路与案例分析 引言 在信息爆炸的数字时代,爬虫技术成为获取网络数据的重要手段。一个优秀的爬虫系统不仅要高效稳定,还需具备良好的扩展性和健壮性。本文将探讨爬虫系统的常见模块结构,评估项目复杂性的…

matlab演示银河系转动动画

代码 function GalaxyRotationSimulation()% 参数设置num_stars 1000; % 恒星数量galaxy_radius 1; % 银河系半径rotation_speed 0.05; % 旋转速度% 生成银河系中的恒星分布theta 2 * pi * rand(num_stars, 1); % 角度r galaxy_radius * sqrt(rand(num_stars, 1)); % 半径…

关于烫烫烫和屯屯屯

微较的msvc编译器,调试模式下为了方便检测内存的非法访问,对于不同的内存做了初始化, 未初始化栈: 0xCCCCCCCC 未初始化堆: 0xCDCDCDCD 已释放的堆: 0xDDDDDDDD 0xCCCC解释为GB2312字符即是烫&#xff…

大数据环境搭建@Hive编译

Hive3.1.3编译 1.编译原因1.1Guava依赖冲突1.2开启MetaStore后运行有StatsTask报错1.3Spark版本过低 2.环境部署2.1jdk安装2.2maven部署2.3安装图形化桌面2.4安装Git2.5安装IDEA 3.拉取Hive源码4.Hive源码编译4.1环境测试1.测试方法——编译2.问题及解决方案💥问题1…

【Linux】线程安全的艺术:解锁互斥量在并发编程中的应用

文章目录 前言:1. 进程线程间的互斥相关背景概念1.1. 操作共享变量会有问题的售票系统代码: 2. 互斥量的接口2.1. 解决方案2.1.1. 使用全局的锁:2.1.2. 使用局部的锁:2.1.3. 封装为RAII风格的加锁和解锁:2.1.4. C 11 中…

51单片机-数码管显示多个

目录 简介: 一. 简单全亮 二. 控制单个变化 三. 2024 书接上回 51单片机-数码管显示单个 http://t.csdnimg.cn/Ii6x0 简介: 51 单片机作为控制核心,可以与数码管相连接来实现数字的显示。 数码管通常有多个段,通过控制这些段的点亮和熄灭状态&…

云原生架构案例分析_4.某电商业务云原生改造

名称解释: AHAS:应用高可用服务(Application High Availability Service)是一款专注于提高应用高可用能力的SaaS产品,主要包含多活容灾、故障演练和流量防护三个独立的功能模块。其中流量防护已迁移至微服务治理服务MS…

使用 C# 学习面向对象编程:第 2 部分

C# 类属性简介 属性在面向对象编程中起着至关重要的作用。它们允许我们从类外部访问类的私有变量。在类中使用私有变量是很好的。属性看起来像变量和方法的组合。属性有部分:“get 和 set”方法。get 方法应该返回变量,而 set 方法应该为其赋值。 步骤…