- 0
Notifications Mark All Read
- Login
- Get Prime
Python Program to Minimize the Maximum Difference between Heights
Minimize the Maximum Difference between Heights
In this we need to either increase or decrease the height of every tower by k (only once) where k > 0. The task is Python Program to Minimize the Maximum Difference between Heights of the longest and the shortest tower after modifications print out this difference.
- Input : arr = [2, 16, 9], k = 6
- Output : Maximum difference is 5.
- Explanation : We change 2 to 8, 16 to 10 and 9 to 15. Maximum difference is 7
(between 8 and 15). We can’t get a lower difference.
Algorithm
- Start by passing array and value of k to function
- Declare a variable n and assign half the sum of minimum and maximum element of array
- Declare a empty list name new to store modified array
- Iterate for all the element in array
- If difference between maximum and minimum element of array is less then k then return the difference between max and min of array
- Else if, the current element is greater then or equals to n then append the defense between current element and k to new array
- Else append the sum of current element and k to new array
- Return the difference between maximum and minimum element of new array
- Print the returned value by the function
Space & Time Complexity
- Time Complexity: O(nlogn)
- Space Complexity: O(n)
Python Code
Run
def profit(arr, k): n = (min(arr) + max(arr)) // 2 new = [] for i in arr: if max(arr) - min(arr) < k: return max(arr) - min(arr) elif i >= n: new.append(i - k) else: new.append(i + k) return max(new) - min(new) array = [2, 9, 16] K = 6 print("Maximum difference is :", profit(array, K))
Output
Maximum difference is : 7
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
If you want to practice similar Questions click on given button.
Login/Signup to comment