VOOZH about

URL: https://www.geeksforgeeks.org/dsa/divide-array-k-segments-maximize-maximum-segment-minimums/

⇱ Divide an array into k segments to maximize maximum of segment minimums - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Divide an array into k segments to maximize maximum of segment minimums

Last Updated : 18 Sep, 2023

Given an array of n integers, divide it into k segments and find the maximum of the minimums of k segments. Output the maximum integer that can be obtained among all ways to segment in k subarrays.

Examples: 

Input : arr[] = {1, 2, 3, 6, 5} 
 k = 2
Output: 5
Explanation: There are many ways to create 
two segments. The optimal segments are (1, 2, 3)
and (6, 5). Minimum of both segments are 1 and 5, 
hence the maximum(1, 5) is 5. 


Input: -4 -5 -3 -2 -1 k=1
Output: -5 
Explanation: only one segment, so minimum is -5.

There will be 3 cases that need to be considered. 

  1. k >= 3: When k is greater than 2, one segment will only compose of {max element}, so that max of minimum segments will always be the max.
  2. k = 2: For k = 2 the answer is the maximum of the first and last element.
  3. k = 1: Only possible partition is one segment equal to the whole array. So the answer is the minimum value on the whole array.

Below is the implementation of the above approach 


Output
-5

Time complexity: O(n) 
Auxiliary Space: O(1) 

Comment
Article Tags: