File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
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
+ };
You can’t perform that action at this time.
0 commit comments