由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode的OJ也会有错吗??
相关主题
Recover Binary Search Tree:以前的解法通不过了leetcode 运行结果和eclipse不一样???
inorder traversal的空间复杂度是O(N) 还是O(logN)?这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?
再问个C++的基础问题(in order traversal)leetcode交了钱的能share一下题么?
[leetcode] Maximum Depth of Binary Tree求教Leetcode题目:Lowest Common Ancestor
fb家面试题讨论关于inordertraversal 的iterative way
Find a sub tree with min weight怎么做Tree的traversal也分BFS和DFS?
leetcode上的populate next node I and II大牛帮我看看这哪错了? iterative inorder traversal
help: leetcode "Recover Binary Search Tree" -- 附代码请大神进来看看为什么我的iterative preorder tranverse过不了,多谢
相关话题的讨论汇总
话题: null话题: right话题: treenode话题: root
进入JobHunting版参与讨论
1 (共1页)
y*****3
发帖数: 451
1
Recover Binary Search Tree那道题,自己没想出来,在网上看的别人的思路,自己再
写一下,基本上和人家写的一模一样的,在Eclipse上测试都没有问题,但是OJ就通
过不了:
Wrong Answer:
Input: {2,#,1}
Output: {2,#,0}
Expected: {1,#,2}
可是这个test case我在Eclipse上测试都没有问题啊!!!请大牛们给看看到底是哪儿
写错了?leetcode不该这么不靠谱吧???
public class Solution {
TreeNode badNode1 = null;
TreeNode badNode2 = null;
TreeNode prev = null;
public void recoverTree(TreeNode root) {
if (root != null && (root.left != null || root.right != null) )
{
inOrderTraversal(root);
int temp = badNode1.val;
badNode1.val = badNode2.val;
badNode2.val = temp;
}
}

public void inOrderTraversal(TreeNode root)
{
if (root == null)
{
return;
}
inOrderTraversal(root.left);
if (prev != null && prev.val > root.val)
{
if (badNode1 == null)
{
badNode1 = prev;
badNode2 = root;
}
else
{
badNode2=root;
}
}
prev = root;
inOrderTraversal(root.right);
}
}
j*******t
发帖数: 223
2
Wrong Answer:
Input: {2,#,1}
Output: {2,#,0}
Expected: {1,#,2}
貌似你把树中的值都改了,本来有1,2,现在变成0,2了。
x*******8
发帖数: 145
3
correct me if I'm wrong. 有几次用static field 去做也会有bug,然后改成
ArrayList作为参数带入,就过了,不知道是不是bug。这题你可以用一个ArrayList来
记录错误的node,然后最后调换list中的value。
y*****3
发帖数: 451
4
不是我改的,是OJ出错了。

【在 j*******t 的大作中提到】
: Wrong Answer:
: Input: {2,#,1}
: Output: {2,#,0}
: Expected: {1,#,2}
: 貌似你把树中的值都改了,本来有1,2,现在变成0,2了。

y*****3
发帖数: 451
5
谢谢!你说的这种版本我也试过,报一样的错误。但我用Eclipse测试都没有问题。

【在 x*******8 的大作中提到】
: correct me if I'm wrong. 有几次用static field 去做也会有bug,然后改成
: ArrayList作为参数带入,就过了,不知道是不是bug。这题你可以用一个ArrayList来
: 记录错误的node,然后最后调换list中的value。

I**********s
发帖数: 441
6
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
在public void recoverTree(TreeNode root) {}开始加上这一句就可以了:
badNode1 = badNode2 = prev = null;
y*****3
发帖数: 451
7
哈哈,还真是这个问题。谢谢!

【在 I**********s 的大作中提到】
: // IMPORTANT: Please reset any member data you declared, as
: // the same Solution instance will be reused for each test case.
: 在public void recoverTree(TreeNode root) {}开始加上这一句就可以了:
: badNode1 = badNode2 = prev = null;

w********g
发帖数: 106
8
我已经在本版看过几十次这样的问题了:leetcode有bug?
几乎每次都是因为Solution的class member在用过以后没reset。

【在 y*****3 的大作中提到】
: Recover Binary Search Tree那道题,自己没想出来,在网上看的别人的思路,自己再
: 写一下,基本上和人家写的一模一样的,在Eclipse上测试都没有问题,但是OJ就通
: 过不了:
: Wrong Answer:
: Input: {2,#,1}
: Output: {2,#,0}
: Expected: {1,#,2}
: 可是这个test case我在Eclipse上测试都没有问题啊!!!请大牛们给看看到底是哪儿
: 写错了?leetcode不该这么不靠谱吧???
: public class Solution {

A**d
发帖数: 13310
9
a minor detail: why do you make your helper function public?

【在 y*****3 的大作中提到】
: 哈哈,还真是这个问题。谢谢!
g*********e
发帖数: 14401
10

that's doesn't matter, no one cares

【在 A**d 的大作中提到】
: a minor detail: why do you make your helper function public?
f*******t
发帖数: 7549
11
三哥可以拿这个拒你。所以细节一定要做好

【在 g*********e 的大作中提到】
:
: that's doesn't matter, no one cares

y*****3
发帖数: 451
12
嗯记住了,谢谢!

【在 f*******t 的大作中提到】
: 三哥可以拿这个拒你。所以细节一定要做好
d*****1
发帖数: 263
13
帮人问一下,trapping water这道题。
没有static 变量啊, 所有的变量,都reset了。
还是有case通不过啊(我看了半天,也没给他看出来。)
楼上有人遇到过吗?
public class Solution {
public int trap(int[] A) {
// use stack to find
if (A == null || A.length == 0) {
return 0;
}
// find a concave
int left = 0, right=0;
int sumOfWater = 0;
while (left < A.length) {
// assume left is the left barriar
right = left + 1;
boolean findLowerBar = false;
boolean findHigherBar = false;
while (right < A.length && A[right] < A[left]) {
right++;
findLowerBar = true;
}
right--; // point to the most smallest
if (findLowerBar == false || right == A.length-1 ) { // the next
-right bar is too high
left++;
continue;
}
// Now findLowerBar == true; and we do not exceed the right
end of array
while (right +1 < A.length) {
if (A[right+1] >= A[right]) {
right++;
findHigherBar = true;
} else {
break;
}
}
if (findHigherBar == false) {// do not find the right bar, coz
we reach the end
break;
}
// now left and right hold some water
int totalBarBulk = 0;
for (int i = left + 1; i < right; i++) {
totalBarBulk += A[i];
}
sumOfWater += (Math.min(A[left], A[right]) * (right - left - 1)
- totalBarBulk);
left = right;
}
return sumOfWater;
}
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
请大神进来看看为什么我的iterative preorder tranverse过不了,多谢fb家面试题讨论
请教大家一个问题:Maximum Height (Depth) of a Binary Tree Using PreOrder TraversalFind a sub tree with min weight怎么做
遇到了一个很奇怪的C++问题leetcode上的populate next node I and II
感觉Binary Tree Postorder Traversal的iterative是三种traversal中最难的help: leetcode "Recover Binary Search Tree" -- 附代码
Recover Binary Search Tree:以前的解法通不过了leetcode 运行结果和eclipse不一样???
inorder traversal的空间复杂度是O(N) 还是O(logN)?这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?
再问个C++的基础问题(in order traversal)leetcode交了钱的能share一下题么?
[leetcode] Maximum Depth of Binary Tree求教Leetcode题目:Lowest Common Ancestor
相关话题的讨论汇总
话题: null话题: right话题: treenode话题: root