1
5
这是一个通用的、可重用的解决方案,而不是一个临时的、特定的解决方案。 (根据评论更新)
这些应该是你的Range类的一部分,所以可以这样命名:
如果您没有这些方法,那么您必须像这样调用它:
|
2
2
我想看看是否有一个解决方案更优化的性能。 编辑:我假设输入列表已排序。 如果不是这样,我建议先对它进行排序,而不是试图将其放入算法中。排序仅限于( n 日志 n ),但如果你想把它摆弄进去,你很容易得到( n
作为旁白, |
3
1
还有一个:
您可以直接使用它:
但是如果你有很多项,那么效率会很低,因为复杂性是O(n)。但是,由于只能合并同一类别中的项,因此可以按类别对它们进行分组并合并每个组,然后展平结果:
|
4
0
假设列表已排序,并且范围不重叠,如您在问题中所述,这将在O(n)时间内运行:
这是假设您有一个
编辑: 这里有一个就地算法:
编辑:
|
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |