@pezy 你几系出来的, 方法都比较抽象(高效简洁), 前两天每天看一次,都没看懂.
今天用set实现了下, 再回头看终于明白了.
如你所说, 直接的思路是排序+迭代, 无论是map 还是set 都隐含了利用了其自动高效排序的性质优先降低了一次时间复杂度, 如果用了unordered_map, 你还用了默认为0这个性质来去重, 另外加上你用value标识连续数目,直接把代码写成几行了, 赞!
这个issues想和你讨论一下具体的时间复杂度. 每次都不太会分析.
unordered_map 实现:
遍历n, 搜了下map内部机制是用 `红黑树` 实现?单次增删改按照`logn来算, 那么总的时间复杂度是不是: n*logn` ? 一个循环内部按照logn的线性时间来算.