Files
leetcode/top-100-liked/13_test.go
T
2026-06-01 03:33:34 +10:00

44 lines
895 B
Go

package top100liked
import "testing"
// 爆内存
// func maxSubArray(nums []int) int {
// l := len(nums)
// msa := make([][]int, l)
// for i := range msa {
// msa[i] = make([]int, l)
// }
// res := nums[0]
// for i, v := range nums {
// msa[i][i] = v
// res = max(res, v)
// }
// for i := range l {
// for j := i + 1; j < l; j++ {
// msa[i][j] = msa[i][j-1] + nums[j]
// res = max(res, msa[i][j])
// }
// }
// return res
// }
func maxSubArray(nums []int) int {
dp := make([]int, len(nums))
dp[0] = nums[0]
maxSoFar := nums[0]
for i := 1; i < len(nums); i++ {
dp[i] = max(nums[i], dp[i-1]+nums[i])
maxSoFar = max(maxSoFar, dp[i])
}
return maxSoFar
}
func TestS13(t *testing.T) {
println(maxSubArray([]int{-2, 1, -3, 4, -1, 2, 1, -5, 4}))
println(maxSubArray([]int{1}))
println(maxSubArray([]int{5, 4, -1, 7, 8}))
println(maxSubArray([]int{-2, 1}))
}