leetcode:53.最大字序和

简介: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

题目描述:


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


示例:


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


题目难度:简单


分析:


题目的意思就是说在数组中找到一串连续的元素,使得这些元素相加最大。


直接遍历数组即可,把每个元素都相加起来,maxSum始终存储最大值,thisSum代表当前遍历的所有元素和,要注意的是thisSum可能为负数,当为负数的时候直接赋值0即可。这样就可以省略之前不需要的元素(即默认代表后面有正数,如果全为负数那么也可以找到一个最大的值)。


代码如下:


class Solution {
    public int maxSubArray(int[] nums) {
        int thisSum = 0, maxSum = nums[0];
        for (int i = 0; i < nums.length; i++) {
            int num = nums[i];
            thisSum += num;
            if (thisSum >= maxSum) {
                maxSum = thisSum;
            }
            if (thisSum < 0) {
                thisSum = 0;
            }
        }
        return maxSum;
    }
}


总结:


时间复杂度为O ( n ) ,需要遍历一次数组。

目录
打赏
0
0
0
0
11
分享
相关文章
链路追踪学习四:gin集成jaeger
链路追踪学习四:gin集成jaeger
685 0
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
2632 0
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
源映射错误:Error: request failed with status 404 源 URL:http://localhost:8080/bootstrap/js/axios-0.18.0.js
源映射错误:Error: request failed with status 404 源 URL:http://localhost:8080/bootstrap/js/axios-0.18.0.js
209 0
源映射错误:Error: request failed with status 404 源 URL:http://localhost:8080/bootstrap/js/axios-0.18.0.js
|
9月前
|
计算机组成原理的缓存
计算机组成原理中缓存的效率计算、缓存命中率的确定以及Cache与主存地址映射的三种方式:直接映射、全相联映射和组相联映射。
211 1
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
195 1
|
8月前
|
通义灵码测评
作为一名运维人员,通过使用通义灵码进行业务、功能及环境测试,显著提高了工作效率。以前需自行查找或编写代码,不仅速度慢且易出错。通义灵码能够快速响应需求,即时生成所需代码,大幅减少错误和修改时间,优化了工作流程。
116 1
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
330 0
避免低级错误:深入解析Java的ConcurrentModificationException异常
在软件开发中,我们常常会遇到各种错误和异常。其中有一类比较低级但又常见的错误就是`ConcurrentModificationException`异常。最近了我就写了个这种异常,这个异常通常发生在使用迭代器遍历集合时,同时对集合进行修改,从而导致迭代器检测到集合结构发生变化而抛出异常。在测试环境中可能因为数据量较小或者测试场景不充分未能显现问题,但一旦部署到生产环境,场景增多,并发操作增多,这个低级错误就会爆发。
404 0
避免低级错误:深入解析Java的ConcurrentModificationException异常
Java面试题:详解单例模式与内存泄漏?内存模型与volatile关键字的实操?并发工具包与并发框架的应用实例
Java面试题:详解单例模式与内存泄漏?内存模型与volatile关键字的实操?并发工具包与并发框架的应用实例
104 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问