连续子数组的最大和
2023/2/11小于 1 分钟
连续子数组的最大和
题目链接
题目描述
刷题思路
代码实现
/**
* 连续子数组的最大和 时间复杂度O(n)
* 难度:简单
*/
function FindGreatestSumOfSubArray01(array) {
// 标记指针
let index = 0
// 子串的累计结果
let sum = 0
// 子串的累加和最大值,当标记位从
let max = array[index]
// 循环
while (index < array.length) {
sum += array[index]
max = sum > max ? sum : max
// 注意,重新计数
sum = sum > 0 ? sum : 0
index++
}
return max
}
/**
* 连续子数组的最大和
*/
function FindGreatestSumOfSubArray(array) {
// 首位指针
let i = 0
// 从第一个元素开始,假设最大
let max = array[0]
let sum = 0
while (i < array.length) {
// 替换
// 和下一个元素求和
sum += array[i]
// 获取最大值
max = sum > max ? sum : max
// 小于sum值,则说明累加和变小了,下一个模块重新计数
sum = sum < 0 ? 0 : sum
// 标记指针后移
i++
}
return max
}
console.log(FindGreatestSumOfSubArray01([1, -2, 3, 10, -4, 7, 2, -5]))
console.log(FindGreatestSumOfSubArray([-2, -8, -1, -5, -9]))
一些建议
更新日志
2024/7/29 15:43
查看所有更新日志
5a2b2
-于c0f2d
-于06596
-于9b9e4
-于b0275
-于5f1e1
-于02ab1
-于8de1a
-于1d4ee
-于74e84
-于ced18
-于a23ce
-于e34c0
-于74aa9
-于3c22c
-于9bbe9
-于e4c74
-于