![]() |
1
1
我希望我正确理解了这个问题。这是我用C#可以得到的解决方案:
|
![]() |
2
1
我想你可以用扫描算法来解决这个问题。我的方法如下: 一般的想法是,我们将找到必须删除的最小间隔数,以使所有数字都符合限制,而不是找出您可以选择并仍符合限制的最大间隔数。我们可以这样做:
首先创建一个三元组向量,第一部分是整数,第二部分是布尔值,而第三部分是整数。第一部分表示输入中的所有数字(包括
根据第一部分对创建的向量进行排序,如果是平局
在您提供的示例中,向量将为:
现在,在向量上迭代,同时保留一组整数,这些整数表示当前采用的间隔。集合中的数字表示
在向量上迭代时,我们可能会遇到以下两种可能性之一:
如果您需要计算所采取的间隔的数量,甚至需要打印它们,这很容易做到。无论何时处理
我的方法的总体复杂性是: N日志(N) 哪里 N 是输入中给定的间隔数。 |
![]() |
dan · 按距离截止对线性间隔进行分组 2 年前 |
![]() |
CodeRic · 导航时的clearInterval()。推式反应器 2 年前 |
|
rayray · 查找Swift 4中作为字符串存储的2次之间的差异 6 年前 |
![]() |
kjdion84 · 间隔造成的不必要延迟 6 年前 |
![]() |
Hans Wurst · Numpy查找数组小范围内最大值的索引 6 年前 |
![]() |
Mohammed · Oracle查询中的H2加减间隔秒 6 年前 |
![]() |
Pau RS · 基于间隔重叠合并两个数据帧 6 年前 |
![]() |
LookIntoEast · 不超过覆盖范围限制的最大间隔子集? 7 年前 |