
连续子数组的最大和
题目
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。(题目来自剑指Offer)
示例
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6。
解法
动态规划
/** * @desc 连续子数组的最大和 * @param {number[]} nums * @return {number} */ let maxSubArray = (nums) => { let res = nums[0]; for (let i = 1; i < nums.length; i++) { // 对nums进行状态转移,如果nums[i-1]>0,则说明它对会让nums[i]的值更大 nums[i] += nums[i - 1] > 0 ? nums[i - 1] : 0; res = Math.max(res, nums[i]); } return res; };
评论(0)