2439-最小化数组中的最大值
给你一个下标从 0 开始的数组 nums
,它含有 n
个非负整数。
每一步操作中,你需要:
- 选择一个满足
1 <= i < n
的整数i
,且nums[i] > 0
。 - 将
nums[i]
减 1 。 - 将
nums[i - 1]
加 1 。
你可以对数组执行 任意 次上述操作,请你返回可以得到的 nums
数组中 ** 最大值** 最小 为多少。
示例 1:
**输入:** nums = [3,7,1,6]
**输出:** 5
**解释:**
一串最优操作是:
1. 选择 i = 1 ,nums 变为 [4,6,1,6] 。
2. 选择 i = 3 ,nums 变为 [4,6,2,5] 。
3. 选择 i = 1 ,nums 变为 [5,5,2,5] 。
nums 中最大值为 5 。无法得到比 5 更小的最大值。
所以我们返回 5 。
示例 2:
**输入:** nums = [10,1]
**输出:** 10
**解释:**
最优解是不改动 nums ,10 是最大值,所以返回 10 。
提示:
n == nums.length
2 <= n <= 105
0 <= nums[i] <= 109
Bold> Problem: 2439. 最小化数组中的最大值
[TOC]
思路
> 这题本质上总sum是不变的,变的只是值的分配。
解题方法
我们可以想到首先把res、total设为num【0】,因为她本质只是一个分配问题,所以我们可以比较res跟total迭代后的结果,即可秒出答案,详细看代码,很简便!!(PS:导入的库只有stido跟math,是有用的,其他的只是我的习惯)
Code
1 |
|
Comments