小编lam*_*duh的帖子

通过列表轮换找到最小绝对差和的最快算法

通过从左到右旋转 2 个列表,找到两个列表中每个对应项之间差异的绝对值的最小可能总和,因为它们的长度相同

旋转样品:

List [0, 1, 2, 3, 4, 5] rotated to the left = [1, 2, 3, 4, 5, 0]

List [0, 1, 2, 3, 4, 5] rotated to the right= [5, 0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

绝对差之和:

List 1 = [1, 2, 3, 4]
List 2 = [5, 6, 7, 8]

Sum of Abs. Diff. = |1-5| + |2-6| + |3-7| + |4-8| = 16
Run Code Online (Sandbox Code Playgroud)

再一次,对于任意长度的列表和整数值,任务是通过简单地旋转到一个或两个列表的左/右来寻找最小的总和。

我对旋转和获取最小绝对差和没有问题。我只想知道更聪明的方法,因为我的算法会检查每个可能的组合,这很慢。

这是我的蛮力方法:

list1 = [45, 21, 64, 33, 49] …
Run Code Online (Sandbox Code Playgroud)

python algorithm discrete-mathematics

9
推荐指数
1
解决办法
637
查看次数

标签 统计

algorithm ×1

discrete-mathematics ×1

python ×1