Best Time to Buy and Sell Stock III LeetCode solution in C++

1
class Solution {
2
public:
3
int maxProfit(vector<int> &prices) {
4
int n = prices.size();
5
vector<int> left(n);
6
vector<int> right(n);
7
int mini = INT_MAX;
8
int ans1 = 0;
9
for (int i = 0; i < n; i++) {
10
mini = min(mini, prices[i]);
11
ans1 = max(ans1, prices[i] - mini);
12
left[i] = ans1;
13
}
14
int maxi = INT_MIN;
15
int ans2 = 0;
16
for (int i = n - 1; i >= 0; i--) {
17
maxi = max(maxi, prices[i]);
18
ans2 = max(ans2, maxi - prices[i]);
19
right[i] = ans2;
20
}
21
int ans3 = 0;
22
for (int i = 0; i < n; i++) {
23
ans3 = max(ans3, left[i] + right[i]);
24
}
25
return ans3;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0