当前位置: 首页 > article >正文

【代码随想录】刷题记录(83)-最大子数组和

题目描述:

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

 

子数组

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

 

示例 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

 

提示:

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

 

我的作答:

根据贪心算法的原理,局部最优解推出全局最优解。那么,只要加上下一个数比当前累加值大,就立即更新加上下一个值的结果;而如果下一个数是负数,那么立马归零,表示这个数打断了子序列(因为一旦加上一个负数,只会一直“拖后腿”)

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        result = -float('inf') #定义无穷小
        count = 0
        for i in range(len(nums)):
            count += nums[i]
            if count>result:
                result = count
            if count<0:
                count = 0
        return result

f513127d23bc4f34abb5a0a0ca161ec7.png

 

参考代码:

差不多

 


http://www.kler.cn/a/451493.html

相关文章:

  • CI/CD是什么?
  • GFPS扩展技术原理(七)-音频切换消息流
  • 数字工厂管理系统就是ERP系统吗
  • 简单了解函数递归
  • [WASAPI]从Qt MultipleMedia来看WASAPI
  • golang , chan学习
  • 利用Java爬虫获取苏宁易购商品详情
  • 决策树(理论知识1)
  • 突发!GitLab将停止对中国区用户提供GitLab.com账号服务
  • 大语言模型中的Agent;常见的Agent开发工具或框架
  • 我的编程语言学习笔记
  • Airwallex空中云汇实现独立站安全高效收款
  • 《三角洲行动》游戏运行时提示“缺失kernel32.dll”:问题解析与解决方案
  • springboot、springcloudnacos、netty-socketio实现im集群弹性伸缩和节点上下线监听
  • 工业相机镜头选型知识详解
  • 学习笔记(prism--视频【WPF-prism核心教程】)--待更新
  • 突围边缘:OpenAI开源实时嵌入式API,AI触角延伸至微观世界
  • Spark和Hadoop之间的区别
  • 后端接口返回文件流,前端下载(java+vue)
  • 特殊的“Undefined Reference xxx“编译错误
  • Rust 在前端基建中的使用
  • 深度学习在灾难恢复中的作用:智能运维的新时代
  • 【数据结构】数据结构整体大纲
  • 面试题整理18----Pause容器的用途
  • 代码随想录 day52 第十一章 图论part03
  • 医疗行业 UI 设计系列合集(一):精准定位