function maxSubArray(nums: number[]): number {
if (nums.length === 1) return nums[0]
let max_end: number = nums[0]
let max_current: number = nums[0]
for (let i: number = 1; i < nums.length; i++) {
// 拿到第一个最大字串,就是nums[0]和nums[1]的和来做比较,取出最大值
// 拿到最大值 在和当前上一次最大值做一次比较
// 每一次都是当前结束点的最长字串的和 与 当前结束点比大小
// 在与上一次存储的最大值做一次比较
max_end = Math.max(nums[i], max_end + nums[i])
// nums[1],max_end + nums[1]
// nums[2],max_end + nums[2]
// nums[3],max_end + nums[3]
max_current = Math.max(max_current, max_end)
}
return max_current
};
leetCode - 最大子数组和
最新推荐文章于 2024-10-01 05:04:32 发布