最后更新于3天前
某公司每日销售额记于整数数组 sales,请返回所有 连续 一或多天销售额总和的最大值。要求实现时间复杂度为 O(n) 的算法。
某公司每日销售额记于整数数组 sales,请返回所有 连续 一或多天销售额总和的最大值。
sales
要求实现时间复杂度为 O(n) 的算法。
O(n)
简单,直接两个变量保存当前前缀和最小前缀,找到减法最大值即可。
func maxSales(sales []int) int { CurPre, MinPre := 0, 0 ans := -111111 for i := 0; i < len(sales); i ++ { CurPre += sales[i] ans = max(CurPre - MinPre, ans) MinPre = min(MinPre, CurPre) } return ans }