繁体   English   中英

在以至少 3 个组开头的列表中查找连续和相同数字的最佳组合

[英]Finding best combinations of consecutive and same numbers in a list starting with a group of at least 3

我需要创建一个代码来在列表中找到连续和相同的数字,但它需要将它们配对,这样它们就不能再次使用,它需要找到最好的组合。 把它想象成一个游戏。 您有一个可以在连续组和相同号码组中使用的号码,但其中一个可以使用更多号码。 主要目标是使用更多的数字。

列表: [1, 2, 2, 5, 6, 8, 3, 2, 10, 2]

当我们尝试检查它时。 通常的代码优先考虑它找到的第一个而不是使用最多数字的那个。 所以它看起来像:

[1, 2, 3]但不是[2, 2, 2, 2]

我不是要你们提供整个代码,但有人可以帮我找到一种方法、库或基本策略来重新创建我上面解释的内容。

由于您想要绝对最大的数字组,我们将不得不尝试每个可能的组。 我的意思是,如果我们有一个列表[1,1,2,2,2,3,3,5,6,7,8,9] ,您将比较组[1,1], [2,2,2], [3,3], [1,2,3], [5], [6], [7], [8], [9], [5,6,7,8,9] 我们不会将这些与[1], [1,2], [5,6], etc.进行比较[1], [1,2], [5,6], etc.

方法

首先,您可能应该对列表进行排序 - 这是有道理的,因为所有相同的元素将变得相邻,然后我们可以轻松找到连续的数字。

现在,我们将以不同的方式找到连续数字的组和相同数字的组。

相同的数字

对于这种情况,您要做的就是编写一个循环来遍历列表,如果当前组相同,则将其添加到当前组中。 否则,创建一个新组。

连续数

对于这种情况,您希望删除列表中的所有重复项,可能是通过将其转换为集合。 然后,您可以遍历它,检查当前数字是否比前一个数字多 1。 如果不是,请创建一个新组。

如果您只想要最大可能的组,则不需要存储所有组,只需存储当前最大的组,并将其与每个新组进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM