最大子陣列和

2022-10-09 08:39:12 字數 1261 閱讀 2557

給你乙個整數陣列 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

答案:

func maxsubarray(nums int) int

dict_nums := map[int]int

for i := 1; i <= len_nums - 1; i++

else

dict_nums[i] =i_max_nums

if i_max_nums >max_nums

}return

max_nums

}

class

solution:

def maxsubarray(self, nums: [

int]) -> int

: len_cd =len(nums)

max_sum = nums[0

]

if len_cd == 1

:

return

max_sum

else

: sum_dict =

i = 1

while i <= len_cd - 1

:

if sum_dict[i - 1] > 0

: i_max_sum = nums[i] + sum_dict[i - 1

]

else

: i_max_sum =nums[i]

sum_dict[i] =i_max_sum

if i_max_sum >max_sum:

max_sum =i_max_sum

i += 1

return max_sum

結束

最大子陣列和

問題描述 給定乙個整數陣列a 0 n 求陣列a的子陣列,使其元素和為最大。問題分析 方法一 可以用普通的方法列舉所有的子陣列,然後求出最大的子陣列和,時間複雜度為o n n 方法二 問題描述符合動態規劃最優子結構的要求。設b i 表示以a i 結尾的子陣列的最大子段和,即 b i max,其中0 j...

最大子陣列和

給定乙個陣列 求出陣列的最大子陣列和 其中包含正,負 和0 很簡單把每個子陣列的和求出來話不多說看 方法1暴力求解法 把所有的子陣列都求解出來o n2 public static intgetmaxsubarr int arr return res 第二種方法 dp求解 很簡單理解加上當前的數arr...

最大子陣列和

使用動態規劃 f i 以array i 為末尾元素的子陣列的和的最大值,子陣列的元素的相對位置不變 f i max f i 1 array i array i res 所有子陣列的和的最大值 res max res,f i 如陣列 6,3,2,7,15,1,2,2 初始狀態 f 0 6 res 6 ...