Given an integer array nums and an integer K, The task is to find the maximum sum of a non-empty subsequence of the array such that for every two consecutive integers in the subsequence, nums[i] and nums[j], where i < j, the condition j – i <= K is satisfied.
A subsequence of an array is obtained by deleting some number of elements (can be zero) from the array, leaving the remaining elements in their original order.
Input: nums = [10, 2, -10, 5, 20], K = 2 Output: 37 Explanation: The subsequence is [10, 2, 5, 20]. Input: nums = [-1, -2, -3], K = 1 Output: -1 Input: nums = [10, -2, -10, -5, 20], K = 2 Output: 23
- The optimal solution of this problem can be achieved by using the Sliding Window Maximum .
- For every index, check what is the maximum value that can be obtained from a window of size K before it. If the maximum value is negative, use zero instead.
Time Complexity: O(N)
Space Complexity: O(K)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.