连续数列

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;
};

 

posted @ 2020-04-26 09:35  蓝小胖纸  阅读(408)  评论(0编辑  收藏  举报