题目描述

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.

解题思路

动态规划思想

以nums数组[-2,1,-3,4,-1]为例

  • dp[0]为-2
  • dp[1] = max(dp[0]+nums[1],1)=max(-2,1)=1
  • dp[2] = max(dp[1]+nums[2],-3)=max(1-3,-3)=-2
  • 当前的sum为dp[i-1]+nums[i], nums[i]最大值
  • 然后将maxSum和sum进行比较,取最大值

Go代码实现

Go代码实现1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
func (a int, b int)int  {
if a>b {
return a
}else{
return b
}
}
func maxSubArray(nums []int) int {
n := len(nums) if n == 0 {
return 0
} if n == 1 {
return nums[0]
大专栏  L53-Maximum-Subarrays="line"> } sums := make([]int, n)
maxSum := nums[0]
sums[0] = nums[0] for i:=1;i<n ; i++ {
sums[i] = max(sums[i-1]+nums[i], nums[i])
maxSum = max(sums[i], maxSum)
}
return maxSum
}

Go代码实现2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func maxSubArray(nums []int) int {
n := len(nums) if n == 0 {
return 0
} maxSum := nums[0]
curSum := nums[0] for i:=1;i<n ; i++ {
if curSum<0 {
curSum = nums[i]
}else{
curSum += nums[i]
} if curSum>maxSum {
maxSum = curSum
}
}
return maxSum
}

参考文档

最新文章

  1. Linux 利用Google Authenticator实现ssh登录双因素认证
  2. WebView返回时设置Title
  3. [日常训练]mod
  4. linux程序设计1
  5. Python 派生类子类继承类
  6. 对phpcms中{L(&#39;news&#39;)}的讲解
  7. 网页计算器,(类,隐藏域,style=display:block等)
  8. iphone开发之用lipo合并模拟器库和真机库,发布一个通用的静态库
  9. C#中如何截取Windows消息来触发自定义事件
  10. Java并发框架——AQS堵塞队列管理(一)——自旋锁
  11. JS模式--状态模式(状态机)
  12. Field的getModifiers()方法返回int类型值表示该字段的修饰符
  13. MongoDB 4.0.* 远程连接及用户名密码认证登陆配置——windows
  14. MYSQL实战-------丁奇(极客时间)学习笔记
  15. C++回顾day03---&lt;异常&gt;
  16. Python 3.7 安装Twisted
  17. varnish4 配置文件整理
  18. powershell 中常用cmd,unix命令(get-alias)
  19. IDEA中mybatis插件自动生成手写sql的xml文件
  20. A + B 问题

热门文章

  1. SVN服务器的搭建(三)
  2. python获取当前时间戳
  3. iterm2 粘贴时有多余字符 0~ 1~
  4. jackson解析处理JSON
  5. H - Mr. Panda and Birthday Song Gym - 101775H (动态规划)
  6. 2019-2020-1 20199324《Linux内核原理与分析》第七周作业
  7. 42)PHP,mysqli函数功能总结
  8. LeetCode No.91,92,93
  9. pip install torch出现错误
  10. Method POST, Status (canceled) error message