2020-04-26
连续数列
给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和
题解:
思路1:动态规划
/** * @param {number[]} nums * @return {number} */ var maxSubArray = function (nums) { let tmp = nums[0]; // tmp 是遍历每一项时,前面的最大和 如果前面的和为负数 那么tmp就赋值为当前值 let sum = tmp; for (let i = 1; i < nums.length; i++) { if (tmp < 0) tmp = nums[i]; // 遍历 如果tmp为0 赋值当前值给tmp else tmp += nums[i]; // 如果tmp 大于0 那么 大于0的数加 当前值肯定大于当前值 if (tmp > sum) sum = tmp; // 判断tmp 是否大于 sum sum取最大的tmp } return sum; };