Algorithm 如何找到对元素列表进行分组所需的最小组数?

Algorithm 如何找到对元素列表进行分组所需的最小组数?,algorithm,geometry,Algorithm,Geometry,例如: 有一个元素列表,例如排序整数列表{1,2,3,4,6,8,11} 我想找出小组的最小数量,小组中的每个成员都有一个 彼此之间的限定差值,例如彼此小于或等于2 在这种情况下,我们可以看到答案应该是4,一个可能的解决方案是{1,2,3},{4,6},{8},{11} 如何编写求最小数的算法 此外,我们可以在2个维度上考虑这个问题: 有一个点列表{(3,3)、(3,6)、(6,9)}。长度为3的正方形的最小数目是多少,我需要用来覆盖所有这些点?这里的答案应该是2。但是如何通过编程找到它呢 我问

例如:

有一个元素列表,例如排序整数列表{1,2,3,4,6,8,11}

我想找出小组的最小数量,小组中的每个成员都有一个 彼此之间的限定差值,例如彼此小于或等于2

在这种情况下,我们可以看到答案应该是4,一个可能的解决方案是{1,2,3},{4,6},{8},{11}

如何编写求最小数的算法

此外,我们可以在2个维度上考虑这个问题:

有一个点列表{(3,3)、(3,6)、(6,9)}。长度为3的正方形的最小数目是多少,我需要用来覆盖所有这些点?这里的答案应该是2。但是如何通过编程找到它呢


我问这个问题是为了解决谷歌代码堵塞实践竞赛中的问题,但任何解决问题第一部分的答案对我来说都足够好。

对于1-D:按升序排序元素,通过将新组的左边界设置为任何组尚未覆盖的最小元素,贪婪地形成组。

谢谢!我认为用这么简单的方法解决不了这个问题。这是伟大的=这个解决方案是伟大的后续的一个好的方式来考虑2-D问题是遵循@ Timru的解决方案,但替代左侧和上部。GooRog(对于一个练习,考虑{(1,1),(2,2),(3,3),(4,4),(6,6),(8,8),(11,11)}。