一、题目

二、题目分析
从左到右进行求和,用一个max变量来保存最大的数组和
如果当前求和的结果sum,大于0的话,就继续加当前元素
如果当前求和的结果sum小于0的话,那么加上当前元素只会对最终数组和起减少的作用,而不是增大数组和,所以如果当前求和的结果sum小于0的话则直接以当前元素为起点新起数组求最大数组和
三、代码分析
/** * @param {number[]} nums * @return {number} */ var maxSubArray = function(nums) { let ans = nums[0]; let sum = 0; for(const n of nums){ if(sum>0){ sum+=n; }else{ sum = n; } ans = Math.max(ans,sum); } return ans; };
四、其他分析
动态规划解决题,但是我目前还没有完全懂动态规划解题思路,暂且先放着,明天补回来,做下一题
浙公网安备 33010602011771号