1769.移动所有球到每个盒子所需的最小操作数(javascript)1769.MinimumNumberofOperationstoMoveAllBallstoEachBox
原创有 n 一个盒子。给你一个长度 n 二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的,而 boxes[i] 的值为 ‘1’ 指示该框具有 一个 小球。
在一个步骤中,您可以 一个 球从一个盒子移动到相邻的盒子。部分 i 箱子和编号。 j 相邻的箱子需要满足 abs(i - j) == 1 。请注意,在执行操作后,某些箱子中可能有不止一个球。
返回长度 n 的数组 answer ,其中 answer[i] 就是把所有球移到第一个 i 需要一个盒子。 最小 操作数。
每个 answer[i] 全部根据盒子 初始状态 进行计算。
示例 1:
输入:boxes = "110"
输出:[1,1,3]
说明:每个框对应的最小操作数如下:
1) 第 1 方框:从第一个位置移动一个小球 2 箱子移动到编号。 1 需要一个盒子。 1 步操作。
2) 第 2 方框:从第一个位置移动一个小球 1 箱子移动到编号。 2 需要一个盒子。 1 步操作。
3) 第 3 方框:从第一个位置移动一个小球 1 箱子移动到编号。 3 需要一个盒子。 2 步骤操作。第一个小球 2 箱子移动到编号。 3 需要一个盒子。 1 步骤操作。全部的 3 步操作。
示例 2:
输入:boxes = "001011"
输出:[11,8,5,4,3,4]
提示:
- n == boxes.length
- 1 <= n <= 2000
- boxes[i] 为 ‘0’ 或 ‘1’
var minOperations = function (boxes) {
const len = boxes.length
const list =[]
for (let i = 0; i < len; i++) {
let sum = 0
for (let j = 0; j < len; j++) {
if (boxes[j] == 1) {
sum+= Math.abs(j - i)
}
}
list.push(sum)
}
return list
};
leetcode: https://leetcode.cn/problems/minimum-number-of-operations-to-move-all-balls-to-each-box/
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除