企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Given an integer array`nums`, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. **Example:** ~~~ Input: [-2,1,-3,4,-1,2,1,-5,4], Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6. ~~~ **Follow up:** If you have figured out the O(*n*) solution, try coding another solution using the divide and conquer approach, which is more subtle. **翻译** 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 **示例:** ~~~ 输入: [-2,1,-3,4,-1,2,1,-5,4], ~~~ **进阶:** 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 **解法1:** ~~~ var maxSubArray = function(nums) { if (!nums.length) { return0;  } let maxWithEnd = nums[0]; let maxSoFar = nums[0]; for (let i = 1; i < nums.length; i++) {         maxWithEnd = Math.max(maxWithEnd + nums[i], nums[i]);         maxSoFar = Math.max(maxSoFar, maxWithEnd);     } return maxSoFar; }; ~~~ **解法2:** ``` var maxSubArray = function(nums) { var max = -Number.MAX_VALUE; var sum = 0; nums.forEach(function(item, index, array) {     sum += item; if (sum > max)       max = sum; if (sum < 0)       sum = 0;   }); return max; }; ```