leetcode-1191-K-Concatenation Maximum Sum
问题
Given an integer array arr
and an integer k
, modify the array by repeating it k
times.
For example, if arr = [1, 2]
and k = 3
then the modified array will be [1, 2, 1, 2, 1, 2]
.
Return the maximum sub-array sum in the modified array. Note that the length of the sub-array can be 0
and its sum in that case is 0
.
As the answer can be very large, return the answer modulo 10^9 + 7
.
Example 1:
1 | Input: arr = [1,2], k = 3 |
Example 2:
1 | Input: arr = [1,-2,1], k = 5 |
Example 3:
1 | Input: arr = [-1,-2], k = 7 |
Constraints:
1 <= arr.length <= 10^5
1 <= k <= 10^5
-10^4 <= arr[i] <= 10^4
分析
三种情况:
- arr中的最大子序列
- arr的最大前缀和加上arr的最大后坠和
- arr的最大前缀和加上arr的最大后坠和,再加上$sum(arr)*(k-1)$
代码
1 | class Solution { |
Author: Hatton.Liu
Link: http://hattonl.github.io/2020/03/30/leetcode-1191/
License: 知识共享署名-非商业性使用 4.0 国际许可协议