b******n 发帖数: 851 | 1 snapchat店面,
valid soduku,
find the largest kth element in the binary search tree
第二题, 他说, 你自己定义那个tree, 我说, 你可以弄个augmented BST, store
number of elements
或者就是walk (right, root , left, 然后keep counter走了多少了)
第二个方法写了
都写出来了, 然后第二题, 最后没什么时间了, 就没run
隔一会, 就收到automatic的拒信。。。
现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?! |
P******r 发帖数: 1342 | |
i*****h 发帖数: 1534 | 3 最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题 |
b******n 发帖数: 851 | 4 今天刚面的。。。
【在 i*****h 的大作中提到】 : 最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题
|
b******n 发帖数: 851 | 5 你过了么?
【在 i*****h 的大作中提到】 : 最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题
|
b******n 发帖数: 851 | 6 post my code to see if there's any bug:
// 1 2 3 4 5 (BST)
// find 1st greatest element -> return 5
// find 3rd greatest -> return 3
TreeNode helper(TreeNode root, int[] k) {
if (root == null) return null;
TreeNode result = helper(root.right, k);
if (result != null) return result;
else {
--k[0];
if (k[0] == 0) {
return root;
}
}
return helper(root.left, k);
}
【在 P******r 的大作中提到】 : 第二题你的解法是啥意思?
|
i*****h 发帖数: 1534 | 7 没过啊。。。哭死
【在 b******n 的大作中提到】 : 你过了么?
|
m****i 发帖数: 650 | 8 这个答案是有问题的, 除非root没有左子树。walk through 一下就知道是不对的了
这个题目可以用argument tree 实现log(n) 找到
或是in order traversal, o(k)时间找到
【在 b******n 的大作中提到】 : post my code to see if there's any bug: : // 1 2 3 4 5 (BST) : // find 1st greatest element -> return 5 : // find 3rd greatest -> return 3 : TreeNode helper(TreeNode root, int[] k) { : if (root == null) return null; : TreeNode result = helper(root.right, k); : if (result != null) return result; : else { : --k[0];
|
s*****r 发帖数: 43070 | 9 coding style不行啊,虽然你老骂俺们码农WS,但这code写得也挺WS的
为啥只改k[0],其他element都不管了,一看就有问题
【在 b******n 的大作中提到】 : post my code to see if there's any bug: : // 1 2 3 4 5 (BST) : // find 1st greatest element -> return 5 : // find 3rd greatest -> return 3 : TreeNode helper(TreeNode root, int[] k) { : if (root == null) return null; : TreeNode result = helper(root.right, k); : if (result != null) return result; : else { : --k[0];
|
d******e 发帖数: 2265 | 10 k
不需要是数组
最简单的,写个遍历的generator
java这种傻语言可能要iterator
然后或者for loop或者dropwhile 再next一下搞定
【在 s*****r 的大作中提到】 : coding style不行啊,虽然你老骂俺们码农WS,但这code写得也挺WS的 : 为啥只改k[0],其他element都不管了,一看就有问题
|
|
|
e*l 发帖数: 11 | |
b******n 发帖数: 851 | 12 不对?argumented tree我说过, 但interviewer要no extra memory。
题目是要the largest kth element, 你inorder, 要么存到一个array里, 要么事先
知道一共有多少个element
right, root, left是对的。 因为我们要descending order, 不是要ascending
order
【在 m****i 的大作中提到】 : 这个答案是有问题的, 除非root没有左子树。walk through 一下就知道是不对的了 : 这个题目可以用argument tree 实现log(n) 找到 : 或是in order traversal, o(k)时间找到
|
b******n 发帖数: 851 | 13 你是google的, 还是他妈的DBA啊?
这个k是要变的, 我就把k 放到一个array里, arr【0】就是k, arr就一个element
就像C++的pointer一样 你弄个static variable也可以。。。
【在 s*****r 的大作中提到】 : coding style不行啊,虽然你老骂俺们码农WS,但这code写得也挺WS的 : 为啥只改k[0],其他element都不管了,一看就有问题
|
b******n 发帖数: 851 | |
b******n 发帖数: 851 | 15 我写的是没错的,我觉得。。。
但就是我一开始说pre-order是ascending。。。 我其实是说left, root, right。。
。 然后那个面试官, 就幽幽的说, 其实那是in order。。 |
b******n 发帖数: 851 | 16 我今天面的很火, 他妈的觉得天天刷题, 看paper, 现在公司都没有投了。。。
他妈的, 今天在火车上, 看见吸烟的, 他妈的就把他的cigarette就打掉 |
s*****r 发帖数: 43070 | 17 你还是polish一下coding style吧,看着像Java和C的混合体,别人看你的code会非常
头痛
【在 b******n 的大作中提到】 : 我今天面的很火, 他妈的觉得天天刷题, 看paper, 现在公司都没有投了。。。 : 他妈的, 今天在火车上, 看见吸烟的, 他妈的就把他的cigarette就打掉
|
n******n 发帖数: 12088 | 18 代码质量。比如可读性如何?有没有虫子?
你自己觉得做出来,未必是真的做出来。即使做出来了,也未必简洁、优雅、可读。
store
【在 b******n 的大作中提到】 : snapchat店面, : valid soduku, : find the largest kth element in the binary search tree : 第二题, 他说, 你自己定义那个tree, 我说, 你可以弄个augmented BST, store : number of elements : 或者就是walk (right, root , left, 然后keep counter走了多少了) : 第二个方法写了 : 都写出来了, 然后第二题, 最后没什么时间了, 就没run : 隔一会, 就收到automatic的拒信。。。 : 现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?!
|
n******n 发帖数: 12088 | 19 helper在哪里?
【在 b******n 的大作中提到】 : post my code to see if there's any bug: : // 1 2 3 4 5 (BST) : // find 1st greatest element -> return 5 : // find 3rd greatest -> return 3 : TreeNode helper(TreeNode root, int[] k) { : if (root == null) return null; : TreeNode result = helper(root.right, k); : if (result != null) return result; : else { : --k[0];
|
b******n 发帖数: 851 | 20 u mean where's helper function called?
int findKthLargestElement(TreeNode root, int k) {
...
}
我的code和我贴的link里, 没什么区别。 我link里的code, 多个static counter
【在 n******n 的大作中提到】 : helper在哪里?
|
|
|
b******n 发帖数: 851 | 21 行了, 你说混在哪里?
【在 s*****r 的大作中提到】 : 你还是polish一下coding style吧,看着像Java和C的混合体,别人看你的code会非常 : 头痛
|
b******n 发帖数: 851 | 22 那就以这题为例子, 你写一个给我看看, 好的code, 是长的怎么样的?
【在 n******n 的大作中提到】 : 代码质量。比如可读性如何?有没有虫子? : 你自己觉得做出来,未必是真的做出来。即使做出来了,也未必简洁、优雅、可读。 : : store
|
n******n 发帖数: 12088 | 23 记答案被发现了?
【在 b******n 的大作中提到】 : u mean where's helper function called? : int findKthLargestElement(TreeNode root, int k) { : ... : } : 我的code和我贴的link里, 没什么区别。 我link里的code, 多个static counter
|
b******n 发帖数: 851 | 24 我这道题, 没刷到过。。。 我觉得要么就是那个video chat, 人家一看, 我长的狠
难看, 脸上还一堆acne。。。
我发现我一般店面, 不见人的, 都还可以。。 一见人, 就不行了。。
【在 n******n 的大作中提到】 : 记答案被发现了?
|
s*****r 发帖数: 43070 | 25 要是Java,就多用final和generic,特别高大上
要是C,多玩pointer,C++,多玩reference和generic
你coding的水平一看就是初级
【在 b******n 的大作中提到】 : 行了, 你说混在哪里?
|
b******n 发帖数: 851 | 26 我越来越觉得那个DBA的resume, 是你啊。。。
【在 s*****r 的大作中提到】 : 要是Java,就多用final和generic,特别高大上 : 要是C,多玩pointer,C++,多玩reference和generic : 你coding的水平一看就是初级
|
d*b 发帖数: 21830 | 27 你这code是java还是c++? 很多系统里root是保留词,感觉你从来没接触过什么软件,
建议你有时间看一边mozilla firefox的code,看看人家是怎么写的。
【在 b******n 的大作中提到】 : post my code to see if there's any bug: : // 1 2 3 4 5 (BST) : // find 1st greatest element -> return 5 : // find 3rd greatest -> return 3 : TreeNode helper(TreeNode root, int[] k) { : if (root == null) return null; : TreeNode result = helper(root.right, k); : if (result != null) return result; : else { : --k[0];
|
s*****r 发帖数: 43070 | 28 你老骂俺们索南喜欢看脸,不看脸的时候俺们要看coding的,但你的coding比脸还难看
,那就没法了。
【在 b******n 的大作中提到】 : 我越来越觉得那个DBA的resume, 是你啊。。。
|
c********w 发帖数: 308 | 29 不要光说不练 人家好歹上代码了 说水平不行的上个好代码让大家学学。 |
d******e 发帖数: 2265 | 30 def gen:
if root:
gen root.keft
yield root.data
gen root.right
return gen(tree).lsslice(k,none).next()
也许需要自己slice这样会bug free
手机敲的。看个意思吧
【在 c********w 的大作中提到】 : 不要光说不练 人家好歹上代码了 说水平不行的上个好代码让大家学学。
|
|
|
b******n 发帖数: 851 | 31 你用Java敲一个
【在 d******e 的大作中提到】 : def gen: : if root: : gen root.keft : yield root.data : gen root.right : return gen(tree).lsslice(k,none).next() : 也许需要自己slice这样会bug free : 手机敲的。看个意思吧 :
|
b******n 发帖数: 851 | 32 你这个dba敲个能看的?
【在 s*****r 的大作中提到】 : 你老骂俺们索南喜欢看脸,不看脸的时候俺们要看coding的,但你的coding比脸还难看 : ,那就没法了。
|
b******n 发帖数: 851 | 33 是要kth largest, 不是kth smallest, 还不能要extra memory。
【在 d******e 的大作中提到】 : def gen: : if root: : gen root.keft : yield root.data : gen root.right : return gen(tree).lsslice(k,none).next() : 也许需要自己slice这样会bug free : 手机敲的。看个意思吧 :
|
j***y 发帖数: 1640 | 34 你搞个array 干什么呢? int k 就可以了吧。
俺是转行千老+新手。 |
b******n 发帖数: 851 | 35 小姐,java is pass by value, 你只传看了int k, 自己去看看。。 或者你弄个
static field variable 也可以
【在 j***y 的大作中提到】 : 你搞个array 干什么呢? int k 就可以了吧。 : 俺是转行千老+新手。
|
l*****8 发帖数: 1083 | 36 inorder traversal结果是从小到大排序;reverse一下,先访问右子树,结果就是从大
到小排序了。写个递归的reversed inorder traversal应该就可以搞定了。
store
【在 b******n 的大作中提到】 : snapchat店面, : valid soduku, : find the largest kth element in the binary search tree : 第二题, 他说, 你自己定义那个tree, 我说, 你可以弄个augmented BST, store : number of elements : 或者就是walk (right, root , left, 然后keep counter走了多少了) : 第二个方法写了 : 都写出来了, 然后第二题, 最后没什么时间了, 就没run : 隔一会, 就收到automatic的拒信。。。 : 现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?!
|
s*****r 发帖数: 43070 | 37 object是pass by reference,Java里面不这样叫,object 变量就是reference,所以
Java的pass by value和C++的pass by reference是一个意思
never ever使用static variable当变量,static variable都是用作final的,使用
static当变量,可以直接fail了,原因自己去想。
【在 b******n 的大作中提到】 : 小姐,java is pass by value, 你只传看了int k, 自己去看看。。 或者你弄个 : static field variable 也可以
|
w**z 发帖数: 8232 | 38 确切说,Java makes copy of reference, and pass the copy of reference by
value.
【在 s*****r 的大作中提到】 : object是pass by reference,Java里面不这样叫,object 变量就是reference,所以 : Java的pass by value和C++的pass by reference是一个意思 : never ever使用static variable当变量,static variable都是用作final的,使用 : static当变量,可以直接fail了,原因自己去想。
|
j**********3 发帖数: 3211 | |
A******s 发帖数: 20 | 40 我也是,上次两道题都做出来了,然后test cases也都过了,居然还据我
【在 P******r 的大作中提到】 : 第二题你的解法是啥意思?
|