栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

LeetCode 最大子序和

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode 最大子序和

最大子序和

题目来源:https://leetcode-cn.com/problems/maximum-subarray

题目

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

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
解题思路
  1. 定义当前子序和以及最大子序和为数组的一个元素;
  2. 遍历整数数组,比较当前子序和的值及当前遍历的值,取较大值重置赋值给当前子序和 cur_sum;
  3. 同时比较当前子序和及最大子序和的值,取较大值重置赋值给最大子序和 max_sum;
  4. 遍历结束,返回最大子序和的值 max_sum。
代码实现
class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
 '''查找连续子数组的最大和

 Args:
     nums: 整数数组
 
 Returns:
     返回整数数组的最大子序和
 '''
 # 比较当前子序和,最大子序和,返回最大值
 # 定义当前子序和以及最大子序和为第一个元素
 cur_sum = max_sum = nums[0]
 # 遍历整数数组
 for x in range(1, len(nums)):
     # 比较当前值和当前子序和的值,取较大值
     cur_sum = max(nums[x], cur_sum + nums[x])
     # 比较当前值和定义的最大子序和值,将最大值重置赋值给 max_sum
     max_sum = max(cur_sum, max_sum)
 return max_sum
     
实现效果


以上是本篇的主要内容

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号