Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int maxResult(vector<int>& nums, int k) {
- int n = nums.size();
- int dp[n];
- memset(dp, 0 ,sizeof(n));
- dp[0] = nums[0];
- priority_queue<pair<int,int>> pq;
- pq.push({dp[0],0});
- //O(n*logn)
- for(int i = 1; i < n ; ++i)
- {
- while(pq.top().second < i - k)
- {
- pq.pop();
- }
- dp[i] = nums[i] + pq.top().first;
- pq.push({dp[i],i});
- }
- return dp[n - 1];
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement