leetcode 2448

首先需要这个结论.

 

 

而这里 a_ia
i

为任意正整数,我们便可以直接将其 **拆为 **a_ia
i

个系数为 11 的绝对值表达式的和。接下来只需要考虑全体的中位数即可(采用关于数据本身排序,再记录累积的 costcost 何时突破总 costcost 的一半)。

作者:小羊肖恩
链接:https://leetcode.cn/circle/discuss/uO4WuN/view/CUy95z/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

class Solution:
def minCost(self, nums: List[int], cost: List[int]) -> int:
tmp = sorted(zip(nums, cost))
tot, note = sum(cost), 0
for num, c in tmp:
note += c
if note > tot // 2:
chosen = num
break
return sum(c * abs(num - chosen) for num, c in tmp)

作者:小羊肖恩
链接:https://leetcode.cn/circle/discuss/uO4WuN/view/CUy95z/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted on 2022-10-24 16:52  张博的博客  阅读(35)  评论(0编辑  收藏  举报

导航