思路
这道题的动态规划做法,还有一种是贪心做法。
做之前看了贪心,结果思路被影响了。
dp的定义、递推公式我是正确的= =
dp只能从两个地方得来, dp[i-1]+nums[i] 或者nums[i],开启新子数组
二者取最大!
// 动规
var maxSubArray = function(nums) {
let result =nums[0];
let dp =new Array(nums.length).fill(0)
dp[0] =nums[0]
for(let i=1;i<nums.length;i++){
dp[i] =Math.max(dp[i-1]+nums[i],nums[i]) //取两个途径里最大的
result =result>dp[i]?result:dp[i]
}
return result
};