53. 最大子序和

image.png

动态规划

  1. package main
  2. import "fmt"
  3. func Max(a,b int)int{
  4. if a>b {
  5. return a
  6. }
  7. return b
  8. }
  9. func maxSubArray(nums []int) int {
  10. dp := make([]int ,len(nums))
  11. dp[0]=nums[0]
  12. res := dp[0]
  13. for i:=1;i<len(nums);i++{
  14. dp[i]=Max(nums[i],dp[i-1]+nums[i])
  15. if res<dp[i] {
  16. res = dp[i]
  17. }
  18. }
  19. return res
  20. }
  21. //53. 最大子序和 https://leetcode-cn.com/problems/maximum-subarray/
  22. func main() {
  23. fmt.Println(maxSubArray([]int{-2}))
  24. fmt.Println(maxSubArray([]int{-2,1}))
  25. fmt.Println(maxSubArray([]int{-2,1,-3}))
  26. fmt.Println(maxSubArray([]int{2,1,-3,4,-1,2,1,-5,4}))
  27. }

image.png