Posted on 2023-04-05 17:28
Uriel 阅读(30)
评论(0) 编辑 收藏 引用 所属分类:
贪心 、
闲来无事重切Leet Code
给出一个数列每次可以将下标i的数-1,将下标i-1的数+1,执行此操作无限多次,使得最后得到的数列的最大值最小,求这个值
这个操作不改变数列的平均值,让最大值最小就是让数列尽可能平均,于是求数列所有的前缀的平均值里面最大的即可
1 #2439
2 #Runtime: 637 ms (Beats 60%)
3 #Memory: 23.3 MB (Beats 80%)
4
5 class Solution(object):
6 def minimizeArrayValue(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: int
10 """
11 ans, cnt = 0, 0
12 for i in range(len(nums)):
13 cnt += nums[i]
14 ans = max(ans, ceil(1.0 * cnt / (i + 1)))
15 return int(ans)