avatar
b*n
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的拒信。。。
现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?!
avatar
P*r
2
第二题你的解法是啥意思?
avatar
i*h
3
最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题
avatar
b*n
4
今天刚面的。。。

【在 i*****h 的大作中提到】
: 最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题
avatar
b*n
5
你过了么?

【在 i*****h 的大作中提到】
: 最近面的?看来我真该去撞墙了,面试运差成这样。。。我都没遇到原题
avatar
b*n
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 的大作中提到】
: 第二题你的解法是啥意思?
avatar
i*h
7
没过啊。。。哭死

【在 b******n 的大作中提到】
: 你过了么?
avatar
m*i
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];

avatar
s*r
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];

avatar
d*e
10
k
不需要是数组
最简单的,写个遍历的generator
java这种傻语言可能要iterator
然后或者for loop或者dropwhile 再next一下搞定

【在 s*****r 的大作中提到】
: coding style不行啊,虽然你老骂俺们码农WS,但这code写得也挺WS的
: 为啥只改k[0],其他element都不管了,一看就有问题

avatar
e*l
11
我觉得没错啊@@
avatar
b*n
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)时间找到

avatar
b*n
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都不管了,一看就有问题

avatar
b*n
15
我写的是没错的,我觉得。。。
但就是我一开始说pre-order是ascending。。。 我其实是说left, root, right。。
。 然后那个面试官, 就幽幽的说, 其实那是in order。。
avatar
b*n
16
我今天面的很火, 他妈的觉得天天刷题, 看paper, 现在公司都没有投了。。。
他妈的, 今天在火车上, 看见吸烟的, 他妈的就把他的cigarette就打掉
avatar
s*r
17
你还是polish一下coding style吧,看着像Java和C的混合体,别人看你的code会非常
头痛

【在 b******n 的大作中提到】
: 我今天面的很火, 他妈的觉得天天刷题, 看paper, 现在公司都没有投了。。。
: 他妈的, 今天在火车上, 看见吸烟的, 他妈的就把他的cigarette就打掉

avatar
n*n
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的拒信。。。
: 现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?!

avatar
n*n
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];

avatar
b*n
20
u mean where's helper function called?
int findKthLargestElement(TreeNode root, int k) {
...
}
我的code和我贴的link里, 没什么区别。 我link里的code, 多个static counter

【在 n******n 的大作中提到】
: helper在哪里?
avatar
b*n
21
行了, 你说混在哪里?

【在 s*****r 的大作中提到】
: 你还是polish一下coding style吧,看着像Java和C的混合体,别人看你的code会非常
: 头痛

avatar
b*n
22
那就以这题为例子, 你写一个给我看看, 好的code, 是长的怎么样的?

【在 n******n 的大作中提到】
: 代码质量。比如可读性如何?有没有虫子?
: 你自己觉得做出来,未必是真的做出来。即使做出来了,也未必简洁、优雅、可读。
:
: store

avatar
n*n
23
记答案被发现了?

【在 b******n 的大作中提到】
: u mean where's helper function called?
: int findKthLargestElement(TreeNode root, int k) {
: ...
: }
: 我的code和我贴的link里, 没什么区别。 我link里的code, 多个static counter

avatar
b*n
24
我这道题, 没刷到过。。。 我觉得要么就是那个video chat, 人家一看, 我长的狠
难看, 脸上还一堆acne。。。
我发现我一般店面, 不见人的, 都还可以。。 一见人, 就不行了。。

【在 n******n 的大作中提到】
: 记答案被发现了?
avatar
s*r
25
要是Java,就多用final和generic,特别高大上
要是C,多玩pointer,C++,多玩reference和generic
你coding的水平一看就是初级

【在 b******n 的大作中提到】
: 行了, 你说混在哪里?
avatar
b*n
26
我越来越觉得那个DBA的resume, 是你啊。。。

【在 s*****r 的大作中提到】
: 要是Java,就多用final和generic,特别高大上
: 要是C,多玩pointer,C++,多玩reference和generic
: 你coding的水平一看就是初级

avatar
d*b
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];

avatar
s*r
28
你老骂俺们索南喜欢看脸,不看脸的时候俺们要看coding的,但你的coding比脸还难看
,那就没法了。

【在 b******n 的大作中提到】
: 我越来越觉得那个DBA的resume, 是你啊。。。
avatar
c*w
29
不要光说不练 人家好歹上代码了 说水平不行的上个好代码让大家学学。
avatar
d*e
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 的大作中提到】
: 不要光说不练 人家好歹上代码了 说水平不行的上个好代码让大家学学。
avatar
b*n
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
: 手机敲的。看个意思吧
:

avatar
b*n
32
你这个dba敲个能看的?

【在 s*****r 的大作中提到】
: 你老骂俺们索南喜欢看脸,不看脸的时候俺们要看coding的,但你的coding比脸还难看
: ,那就没法了。

avatar
b*n
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
: 手机敲的。看个意思吧
:

avatar
j*y
34
你搞个array 干什么呢? int k 就可以了吧。
俺是转行千老+新手。
avatar
b*n
35
小姐,java is pass by value, 你只传看了int k, 自己去看看。。 或者你弄个
static field variable 也可以

【在 j***y 的大作中提到】
: 你搞个array 干什么呢? int k 就可以了吧。
: 俺是转行千老+新手。

avatar
l*8
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的拒信。。。
: 现在一直被据的, 不知所以然。。。 都做出来了, 干嘛还据?!

avatar
s*r
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 也可以

avatar
w*z
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了,原因自己去想。

avatar
j*3
39
mark
avatar
A*s
40
我也是,上次两道题都做出来了,然后test cases也都过了,居然还据我

【在 P******r 的大作中提到】
: 第二题你的解法是啥意思?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。