由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - BST查找next lowest 可以达到 O(lg N)? (转载)
相关主题
linked list vs Binary treeJava弱弱请救几个小问题
门外汉求教 return statement用法求教:根据给定数组创建二叉树
一个简单的小问题delete this problem
C++ Q05: pointer to constant variableC 多线程的一个问题
BFS traversal starting from leaf level ???random number generator in C++
Cracking coding interview里的一道例题一个小问题
如何让这个cur变量正确指向新地址问个C++中重复删除指针的问题
leetcode 一题 (转载)作为返回值得实参是用指针还是引用比较好?
相关话题的讨论汇总
话题: treenode话题: cur话题: null话题: node话题: lowest
进入Programming版参与讨论
1 (共1页)
d********e
发帖数: 321
1
【 以下文字转载自 JobHunting 讨论区 】
发信人: dilettante (半瓶醋), 信区: JobHunting
标 题: BST查找next lowest 可以达到 O(lg N)?
发信站: BBS 未名空间站 (Thu May 25 16:27:02 2017, 美东)
最近遇到next lowest的题,我写了下面这个inorder traversal (largest ->
smallest)的代码,但是对方坚持让我写 O(lg N),但是TreeNode 只有 left, right
pointer,没有parent pointer, 我觉得不可能啊,大牛有啥好办法吗?
public static Integer findNextLowest(TreeNode root, int target) {
Stack stack = new Stack<>();
TreeNode cur = root;
while (cur != null || stack.size() > 0) {
while (cur != null) {
stack.push(cur);
cur = cur.right;
}
TreeNode node = stack.pop();
if (node.val < target) return node.val; // found the next lowest
cur = node.left;
}
return null;
}
l**********0
发帖数: 150
2
Amortized O(log(n))?
w********m
发帖数: 1137
3
把parent pointer放到argument里面吧
s*******i
发帖数: 406
4
private static TreeNode findNextLowest(TreeNode root, int target){
TreeNode node = root;
TreeNode res = null;
while(node != null){
while(node != null && node.val >= target){
node = node.left;
}
while(node != null && node.val < target){
res = node;
node = node.right;
}
}
return res;
}
N********n
发帖数: 8363
5
Define "next lowest". And what's this "root"? A sorted tree, a heap
or sth?

【在 d********e 的大作中提到】
: 【 以下文字转载自 JobHunting 讨论区 】
: 发信人: dilettante (半瓶醋), 信区: JobHunting
: 标 题: BST查找next lowest 可以达到 O(lg N)?
: 发信站: BBS 未名空间站 (Thu May 25 16:27:02 2017, 美东)
: 最近遇到next lowest的题,我写了下面这个inorder traversal (largest ->
: smallest)的代码,但是对方坚持让我写 O(lg N),但是TreeNode 只有 left, right
: pointer,没有parent pointer, 我觉得不可能啊,大牛有啥好办法吗?
: public static Integer findNextLowest(TreeNode root, int target) {
: Stack stack = new Stack<>();
: TreeNode cur = root;

1 (共1页)
进入Programming版参与讨论
相关主题
作为返回值得实参是用指针还是引用比较好?BFS traversal starting from leaf level ???
再问一个弱问题:为什么程序地址0-0x08000000是不可用的 (转载)Cracking coding interview里的一道例题
一道面试题如何让这个cur变量正确指向新地址
dereference a NULL pointer in Cleetcode 一题 (转载)
linked list vs Binary treeJava弱弱请救几个小问题
门外汉求教 return statement用法求教:根据给定数组创建二叉树
一个简单的小问题delete this problem
C++ Q05: pointer to constant variableC 多线程的一个问题
相关话题的讨论汇总
话题: treenode话题: cur话题: null话题: node话题: lowest