hot100 -- 5.普通数组系列
1.最大子数组和
问题:给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
方法1:暴力求解
# 方法1:暴力求解
def max_sub_sum(nums):max_sum = nums[0]for i in range(len(nums)):for j in range(i, len(nums)):max_sum = max(max_sum, sum(nums[i:j+1]))return max_sum
方法2:Kadane算法
# 方法2:Kadane算法(边走边算,遇到小的就断掉,遇到大的就接上)
def max_sub_sum(nums):cur_sum, max_sum = nums[0], nums[0]for num in nums[1:]:cur_sum = max(cur_sum + num, num)max_sum = max(max_sum, cur_sum)return max_sum