classSolution: defminOperations(self, boxes: str) -> List[int]: ball = [] n = len(boxes) for i, x inenumerate(boxes): ball.append(i) if x == '1'else ... ans = [0] * n for i inrange(n): cnt = 0 for j in ball: cnt += abs(j - i) ans[i] = cnt return ans
前缀和
1 2 3 4 5 6 7 8 9 10 11
classSolution: defminOperations(self, boxes: str) -> List[int]: n = len(boxes) left, right = [0] * n, [0] * n cur = 0 for i, c inenumerate(boxes): left[i], cur = left[i - 1] + cur, cur + (c == '1') cur = int(boxes[-1] == '1') for i inrange(n - 2, -1, -1): right[i], cur = right[i + 1] + cur, cur + (boxes[i] == '1') return [left[i] + right[i] for i inrange(n)]