0424自由做:LC 4寻找两个正序数组的中位数(Median of Two Sorted Arrays)1769移动所有球到每个盒子所需的最小操作数

4:

分类:奇偶

1769:

方法一:暴力 时间复杂度 n^2

class Solution(object):
    def minOperations(self, boxes):
        """
        :type boxes: str
        :rtype: List[int]
        """
        res = [0] * len(boxes)
        for i in range(len(boxes)):
            for j in range(len(boxes)):
                if boxes[j] == "1":
                    res[i] += abs(i - j)
        return res

方法二:有点类似于dp 时间复杂度 n

class Solution:
    def minOperations(self, boxes):
        left, right, operations = int(boxes[0]), 0, 0
        for i in range(1, len(boxes)):
            if boxes[i] == '1':
                right += 1
                operations += i
        res = [operations]
        for i in range(1, len(boxes)):
            operations += left - right
            if boxes[i] == '1':
                left += 1
                right -= 1
            res.append(operations)
        return res

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值