Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给出一个数列每次可以将下标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)

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理