leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1696.cpp (460B)
0 class Solution { 1 public: 2 int maxResult(vector<int> &nums, int k) { 3 vector<int> dp(size(nums)); 4 dp[0] = nums[0]; 5 deque<int> q{0}; 6 for (int i = 1; i < size(nums); i++) { 7 if (q.front() < i - k) q.pop_front(); 8 dp[i] = nums[i] + dp[q.front()]; 9 while (!q.empty() && dp[q.back()] <= dp[i]) 10 q.pop_back(); 11 q.push_back(i); 12 } 13 return dp.back(); 14 } 15 };