We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 2683270 commit 8d70395Copy full SHA for 8d70395
C++/jump-game-ix.cpp
@@ -0,0 +1,25 @@
1
+// Time: O(n)
2
+// Space: O(1)
3
+
4
+// dp, mono stack
5
+class Solution {
6
+public:
7
+ long long minCost(vector<int>& nums, vector<int>& costs) {
8
+ vector<int> stk1, stk2;
9
+ vector<int64_t> dp(size(nums), numeric_limits<int64_t>::max());
10
+ dp[0] = 0;
11
+ for (int i = 0; i < size(nums); ++i) {
12
+ while (!empty(stk1) && nums[stk1.back()] <= nums[i]) {
13
+ dp[i] = min(dp[i], dp[stk1.back()] + costs[i]);
14
+ stk1.pop_back();
15
+ }
16
+ stk1.emplace_back(i);
17
+ while (!empty(stk2) && nums[stk2.back()] > nums[i]) {
18
+ dp[i] = min(dp[i], dp[stk2.back()] + costs[i]);
19
+ stk2.pop_back();
20
21
+ stk2.emplace_back(i);
22
23
+ return dp.back();
24
25
+};
0 commit comments