Given an array, the task is to remove total k elements from corners to maximize the sum of remaining elements. For example, if we k = 5 and if we remove 2 elements from the left corner, then we need to remove 3 elements from the right corner.
Input : arr = [11, 49, 100, 20, 86, 29, 72], k = 4
Output : 206
Explanation :: We remove 29 and 72 from right corner. We also remove 11 and 49 from left corner to get the maximum sum as 206 for remaining elements.
Input : arr = [1, 2, 3, 4, 5, 6, 1], k = 3
Output : 12
Explanation :: We remove two elements from left corner (1 and 2) and one element from right corner (1).
Naive Approach :
1) Initialize result as negative infinity.
2) Compute total sum.
3) Run a loop for x = 1 to k
…..Remove ‘x’ elements from left side and k – i elements from right side.
…..If the remaining elements have sum more than the result, update the result.
Time Complexity: O(n * k)
Efficient Approach (Using Window Sliding Technique)
1) Find the total sum of the array.
2) Find the sum of first n-k elements and initialize this as a current sum and also initialize this as result.
3) Run a loop for i = n-k to n-1
….curr_sum = curr_sum – arr[i – n + k] + arr[i]
….res = max(res, curr_sum)
In step 3, we mainly run sliding window. We remove an element from left side and add an element from right side.
Below is the c++ implementation of the above problem statement.
Maximum sum of remaining elements 206
Time Complexity: O(1)
Auxiliary Space : O(1)
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.
- Maximize sum of K elements in Array by taking only corner elements
- Maximize sum of atmost K elements in array by taking only corner elements | Set 2
- Maximize sum of remaining elements after every removal of the array half with greater sum
- Maximize Bitwise AND of first element with complement of remaining elements for any permutation of given Array
- Minimum number of elements to be removed such that the sum of the remaining elements is equal to k
- Count the subarray with sum strictly greater than the sum of remaining elements
- Average of remaining elements after removing K largest and K smallest elements from array
- Find last two remaining elements after removing median of any 3 consecutive elements repeatedly
- Check if an Array can be Sorted by picking only the corner Array elements
- Check if the array has an element which is equal to sum of all the remaining elements
- Element equal to the sum of all the remaining elements
- Remove array end element to maximize the sum of product
- Check if the array has an element which is equal to product of remaining elements
- Check if the array has an element which is equal to XOR of remaining elements
- Last element remaining by deleting two largest elements and replacing by their absolute difference if they are unequal
- Find the last remaining element after repeated removal of odd and even indexed elements alternately
- Maximize the sum of X+Y elements by picking X and Y elements from 1st and 2nd array
- Maximize the sum of differences of consecutive elements after removing exactly K elements
- Form a number using corner digits of powers
- Longest subsequence having greater corner values
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.