[leetcode]Binary Search Tree Iterator。什么叫平均时间复杂度为O(1)的函数?
https://leetcode.com/problems/binary-search-tree-iterator/
本人比较菜,一般看到这个就只想到,这个题目要求从小到大遍历一个二叉搜索树 ,当然就是中序遍历了。但是始终搞不明白题目的要求
next() and hasNext() should run in average O(1) time and uses O(h) memory, where h is the height of the tree.
什么叫 in average O(1) time ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
举个例子,分析下列代码的时间复杂度:
这个代码是把长度为L,范围从0...L-1的整数数组进行排序。
虽然有循环嵌套,但是这个代码的复杂度是O(n),因为while内的语句最多执行n-1次,所以均摊给外面的for循环,每个循环平均执行一次。也就是说while的复杂度均摊下来是O(1)的。
平均时间复杂度为常数,与问题复杂度(这里指树的高度)无关
不知道楼主怎么看出是要求中序遍历的。。
楼主需要补充算法的基础知识,建议先找本算法的基础教材看一遍,推荐《算法导论》