输入是两个数组,每个数组的长度最大为 6,数组中的每个元素可以是 中的某个数字[1, 2, 3, 4, 5, 6]。返回更改数组以使两个数组之和相等的最小数量。
例如,A = [5, 4, 1, 2, 6, 5],B = [2]; 返回 6,因为我们可以将 5 个骰子投入,A得到[1, 1, 1, 1, 1, 1],再投入 1 个骰子,B得到[6];那么数组将具有相同的总和。
我的第一个想法是分别计算两个数组的总和:Sum(A) = 23, Sum(B) = 2。
然后蛮力方法是计算使总和等于 2, 3, 4, ..., 23 所需的更改。
但我觉得时间复杂度太高了。
这个问题的困难部分是我们不知道我们尝试合并的目标总和是多少。
尽管在给定的示例中,A 的最小和值为 6,但 B 的最大和值为 6,因此我们知道它们将在 6 处重叠,因此我们可以剪切其他分支。