LCR 161. 连续天数的最高销售额

12 阅读1分钟

LCR 161. 连续天数的最高销售额

某公司每日销售额记于整数数组 sales,请返回所有 连续 一或多天销售额总和的最大值。

要求实现时间复杂度为 O(n) 的算法。

 

示例 1:

输入: sales = [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: [4,-1,2,1] 此连续四天的销售总额最高,为 6。

示例 2:

输入: sales = [5,4,-1,7,8]
输出: 23
解释: [5,4,-1,7,8] 此连续五天的销售总额最高,为 23。 

 

提示:

  • 1 <= arr.length <= 10^5
  • -100 <= arr[i] <= 100

注意:本题与主站 53 题相同:leetcode-cn.com/problems/ma…

解题答案

class Solution {
    public int maxSales(int[] sales) {
        int dp = sales[0];
        int maxSale = dp;
        for (int i = 1; i< sales.length; i++) {
            dp = dp > 0 ? dp + sales[i] : sales[i];
            maxSale = Math.max(maxSale, dp);
        }
        return maxSale;
    }
}