u
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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}))
|
||||
}
|
||||
Reference in New Issue
Block a user