因此,如果输入类似于box="1101",那么输出将是[4,3,4,5]

  • 要将所有球放在第一个盒子上,我们必须通过一次操作从box2中取出并通过三个操作从最后一个球中取出,因此总共需要进行4次操作。

  • 要将所有球放在第二个盒子上,我们必须通过一次操作从box1中取出,通过两次操作从最后一个球中取出,因此总共需要进行3次操作。

  • 要将所有球放在第三个盒子上,我们必须从box2和last各取一个操作,从box1取两个操作,所以总共4个操作。

  • 要将所有球放在最后一个盒子上,我们必须通过三个操作从box1中取出,通过两个操作从box2中取出,所以总共有5个操作。

  • 示例

    让我们看看以下实现以获得更好的理解-

    def solve(boxes):
       left = 0
       right = 0
    
       dist = 0
       for i in range(len(boxes)):
          if boxes[i] == "1":
             dist += i
             if i == 0:
                left += 1
             else:
                right += 1
       arr = [dist]
       for i in range(1, len(boxes)):
          arr.append(arr[i-1] + left - right)
          if boxes[i] == "1":
             left += 1
             right -= 1
       return arr
    
    boxes = "1101"
    print(solve(boxes))

    输入

    "1101"
    输出结果
    [4, 3, 4, 5]

    热门推荐