HackerRank
解决方案要求:
-
O(对数[n])
-
O(对数[n])
按索引检索项。
令我惊讶的是,我意识到没有支持这两种操作的数据结构。
起初,我相信
SortedList
O(对数n)
相对于
O(n)
SortedDictionary
SortedDictionary和SortedList类之间的另一个区别是,SortedList支持通过键和值属性返回的集合对键和值进行有效的索引检索。在访问属性时不必重新生成列表,因为列表只是键和值的内部数组的包装器。下面的代码显示如何使用Values属性从已排序的字符串列表中对值进行索引检索。
他们建议使用
ToList()
二进制搜索()
O(对数[n])
这包括向树的每个节点添加一个字段计数,以跟踪在该节点的子树中根目录下有多少项。此字段可以在O(1)中的红黑树旋转期间更新,并且仅使用
sizeof(内部)
每个节点的额外内存。
为什么从一开始就没有这样实施?
把它放在家里有什么坏处
SortedSet
数据结构?