-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2439--minimize-maximum-of-array.js
49 lines (46 loc) · 1.4 KB
/
2439--minimize-maximum-of-array.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 2439. Minimize Maximum of Array
// https://leetcode.com/problems/minimize-maximum-of-array/
// Medium
// You are given a 0-indexed array nums comprising of n non-negative integers.
// In one operation, you must:
// Choose an integer i such that 1 <= i < n and nums[i] > 0.
// Decrease nums[i] by 1.
// Increase nums[i - 1] by 1.
// Return the minimum possible value of the maximum integer of nums after performing any number of operations.
//
// Example 1:
// Input: nums = [3,7,1,6]
// Output: 5
// Explanation:
// One set of optimal operations is as follows:
// 1. Choose i = 1, and nums becomes [4,6,1,6].
// 2. Choose i = 3, and nums becomes [4,6,2,5].
// 3. Choose i = 1, and nums becomes [5,5,2,5].
// The maximum integer of nums is 5. It can be shown that the maximum number cannot be less than 5.
// Therefore, we return 5.
// Example 2:
// Input: nums = [10,1]
// Output: 10
// Explanation:
// It is optimal to leave nums as is, and since 10 is the maximum value, we return 10.
//
// Constraints:
// n == nums.length
// 2 <= n <= 10^5
// 0 <= nums[i] <= 10^9
/**
* @param {number[]} nums
* @return {number}
*/
var minimizeArrayValue = function (nums) {
let sum = 0;
let res = 0;
for (let i = 0; i < nums.length; i++) {
sum += nums[i];
res = Math.max(res, Math.ceil(sum / (i + 1)));
}
return res;
};
let nums = [3, 7, 1, 6];
let res = minimizeArrayValue(nums);
console.log(res);