如何通过仅对邻居求和来标准化整数列表的值?

问题描述 投票:0回答:1

对于任何正整数列表,目标是通过递归求和邻居得到具有最小范围和标准差的整数列表。另外,新列表中的最大值不能超过原始列表中的最大值。

输入示例:

[1, 15, 5, 2, 6]

期望的输出:
[1, 15, 13]

输入示例2:

[8, 15, 2, 6, 1, 10]

所需输出2:
[8, 15, 9, 10]

[8, 15, 8, 11]
有较大的标准偏差)

最明显的方法是评估所有可能的结果并选择条件最好的结果,但是有更有效的方法来解决这个问题吗?

这对于合并各种具有尺寸的对象列表(例如文本)非常有用。

python math graph-theory mathematical-optimization clique-problem
1个回答
0
投票

关键约束是“新列表中的最大值不能超过原列表中的最大值。”

这意味着您无法添加到最大整数。因此,请从最小值开始。

  • 找到列表中的 m 个最小值
  • 找到 m2 的两个邻居的最小值
  • 如果 m + m2 < maximum of list
    • 将 m 和 m2 替换为 m + m2
  • 重复,直到无法再进行替换。
© www.soinside.com 2019 - 2024. All rights reserved.