Skip to content

Commit ebb5816

Browse files
authored
Create maximum-sum-score-of-array.cpp
1 parent 65aaba0 commit ebb5816

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

C++/maximum-sum-score-of-array.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Time: O(n)
2+
// Space: O(1)
3+
4+
// prefix sum, math
5+
class Solution {
6+
public:
7+
long long maximumSumScore(vector<int>& nums) {
8+
int64_t result = numeric_limits<int>::min();
9+
int64_t prefix = 0, suffix = 0;
10+
for (int left = 0, right = size(nums) - 1; left < size(nums); ++left, --right) {
11+
prefix += nums[left];
12+
suffix += nums[right];
13+
result = max({result, prefix, suffix});
14+
}
15+
return result;
16+
}
17+
};
18+
19+
// Time: O(n)
20+
// Space: O(1)
21+
// prefix sum
22+
class Solution2 {
23+
public:
24+
long long maximumSumScore(vector<int>& nums) {
25+
const int64_t total = accumulate(cbegin(nums), cend(nums), 0ll);
26+
int64_t result = numeric_limits<int>::min();
27+
int64_t prefix = 0;
28+
for (const auto& x : nums) {
29+
prefix += x;
30+
result = max({result, prefix, total - prefix + x});
31+
}
32+
return result;
33+
}
34+
};

0 commit comments

Comments
 (0)