Skip to content

53. 最大子序和 #64

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
buuing opened this issue Nov 17, 2021 · 0 comments
Open

53. 最大子序和 #64

buuing opened this issue Nov 17, 2021 · 0 comments

Comments

@buuing
Copy link
Owner

buuing commented Nov 17, 2021

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

输入:nums = [1]
输出:1

示例 3:

输入:nums = [0]
输出:0

示例 4:

输入:nums = [-1]
输出:-1

示例 5:

输入:nums = [-100000]
输出:-100000

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104
     

进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。




const maxSubArray = nums => {
  let sum = nums[0], max = nums[0]
  for (let i = 1; i < nums.length; i++) {
    const num = nums[i]
    if (sum > 0) {
      sum += num
    } else {
      sum = num
    }
    max = Math.max(sum, max)
  }
  return max
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant