1
3
这里有一个实用的方法。其思想是在一个列表中获得所有的会议端点,然后比较相邻的endTime和startTime对,过滤掉那些相等的端点。 然后将结果分组,并根据结果列出会议列表。
它适用于非空的会议列表;处理空的会议是一个额外的问题
然而,我并不觉得它更优雅,因为它需要为大量会议分配更多的对象。转弯
|
2
3
递归的和不可变的。
递归函数有3个参数:
|
3
3
我找到了解决办法
请注意,这不必搜索列表来删除以前的会议。它只是将以前的会议替换为会议的组合。 它确实需要一个可变列表,因为这个解决方案应该是有效的。 |
4
1
老实说,我相信在创建/插入地图时处理这个问题会更好,而不是在以后试图压缩它。但是,这似乎可以避免使用折叠和其他您似乎不喜欢使用的功能。
另外,根据原始会议列表的大小,创建一个扩展会议列表(与stripped相反)并使用它来代替
|
5
1
使用可变性 里面 一个“功能性”的电话是公平的,只要我们不暴露它。 这与您的第一个版本非常相似,但有一些可以说是细微的差别。
再往前走一步,我们可以用
当然,同样的原则也适用于不可变列表:
这可能是最实用的样式变体,但可能会增加更多对象创建的成本。当然,对于实际的性能考虑,我们必须进行基准测试。 |
danny · 如何在kotlin中使用图形2d与paint() 1 年前 |
Vetalll · Java、JDBC在重复密钥更新通配符上的插入 1 年前 |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |
Michel · 在Android上后台播放音频超过一分钟 2 年前 |
Ashish Joshi · 未使用导航图弹出片段 2 年前 |