由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 把leetcode做完了
相关主题
leetcode上的sorted list to BSTA家面经求Offer
大家leetcode的test case都过得去么?我的怎么经常不成?发现一个很恶心的基础问题
问大家关于编程的经验讨论几道google题(附个人答案)
amazon 电面题问到G家题
请教这么一个题:BST maximum sum pathjava问题
这最小公共父母节点有bug吗?求问一个Java问题
大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没Find the node with given value in binary tree in in-order
问题在哪儿啊 kth Node of BST,大家帮忙Create Binary Tree from preorder and inorder arrays
相关话题的讨论汇总
话题: prevnode话题: arr话题: root话题: mid话题: treenode
进入JobHunting版参与讨论
1 (共1页)
l****1
发帖数: 30
1
传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
的题目,全部列举如下:
median of two sorted arrays
regular expressions
O(1) space to recover a BST
in-place merge two sorted arrays
first missing positive
s******r
发帖数: 65
2
牛叉啊,一周业余时间做完leetcode。
一天20道的节奏,这真是传说中的15分钟一道秒杀啊。
还是第一遍。

【在 l****1 的大作中提到】
: 传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
: 的题目,全部列举如下:
: median of two sorted arrays
: regular expressions
: O(1) space to recover a BST
: in-place merge two sorted arrays
: first missing positive

g***j
发帖数: 1275
3
一周业余时间做了一遍,是什么意思?作了132题的OJ? 每天业余时间有多少?

【在 l****1 的大作中提到】
: 传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
: 的题目,全部列举如下:
: median of two sorted arrays
: regular expressions
: O(1) space to recover a BST
: in-place merge two sorted arrays
: first missing positive

g*******s
发帖数: 2963
4
每天业余时间搞定20道。。。。还第一遍
太牛x了
D****6
发帖数: 278
5
挖坑挖到这来了。。。
l****1
发帖数: 30
6
上周四开始做的,今天刚完成的,所有题目。 周末两天除了做家务买菜吃饭社交外的
时间都在做。周中就下班做,上班的时候抽空看下题目想思路。
一开始很慢,头几个题目用了很久还一直错。慢慢上手了就快了,而且写惯了直接在
leetcode的编辑器里面写,写完直接提交,比用ide感觉还有效率。算下来我一共只在
本地编译了8个题目。

【在 g***j 的大作中提到】
: 一周业余时间做了一遍,是什么意思?作了132题的OJ? 每天业余时间有多少?
h*****a
发帖数: 1718
7
牛,不过你列的这些题都是难度级别比较低的,呵呵。

【在 l****1 的大作中提到】
: 传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
: 的题目,全部列举如下:
: median of two sorted arrays
: regular expressions
: O(1) space to recover a BST
: in-place merge two sorted arrays
: first missing positive

c******a
发帖数: 789
8
仰慕一下。我做了4个月了还剩几道实在过不了大OJ。。。。
l****1
发帖数: 30
9
嗯,每个人的风格不一样。列一下你觉得难度级别高的吧

【在 h*****a 的大作中提到】
: 牛,不过你列的这些题都是难度级别比较低的,呵呵。
s******r
发帖数: 65
10
你不会是楼教主的马甲出来逗我们玩的吧:)
这实力,真的可以直接去面试了,绝对秒杀FLG啊。

【在 l****1 的大作中提到】
: 上周四开始做的,今天刚完成的,所有题目。 周末两天除了做家务买菜吃饭社交外的
: 时间都在做。周中就下班做,上班的时候抽空看下题目想思路。
: 一开始很慢,头几个题目用了很久还一直错。慢慢上手了就快了,而且写惯了直接在
: leetcode的编辑器里面写,写完直接提交,比用ide感觉还有效率。算下来我一共只在
: 本地编译了8个题目。

相关主题
这最小公共父母节点有bug吗?A家面经求Offer
大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没发现一个很恶心的基础问题
问题在哪儿啊 kth Node of BST,大家帮忙讨论几道google题(附个人答案)
进入JobHunting版参与讨论
k***x
发帖数: 6799
11
2爷,快出来看又一条大牛。。。

【在 l****1 的大作中提到】
: 传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
: 的题目,全部列举如下:
: median of two sorted arrays
: regular expressions
: O(1) space to recover a BST
: in-place merge two sorted arrays
: first missing positive

h*****a
发帖数: 1718
12
同意你说的,刚才没有offend你的意思。因为我觉得merge sorted array确实是比较基
础的问题。我觉得Minimum Path Sum, Search in Rotated Sorted Array II tricky
一些,主要在于是不是能给出最efficient和simple的code.

【在 l****1 的大作中提到】
: 嗯,每个人的风格不一样。列一下你觉得难度级别高的吧
l****1
发帖数: 30
13
嗯,有道理。 search in rotated sorted array ii 因为有duplicate我觉得没有logn
的方法,所以没往深了想直接线性扫描了。难道是我做错了。。。
merge sorted array因为要in-place,不能额外allocate memory,就用A和B本身来
merge,比一般的要tricky一些
同样,O(1) recover bst树不能用递归,不能用栈,只能用常数个指针而且在O(n)时间
要完成,我觉得也挺tricky的。
regular expression直接上穷举法也能出结果,但是往深了想就需要证明 *|P|*的
pattern里面完全不需要考虑前一个*,只需要保存最后一个,需要一定的分析。
first missing positive的话其实考的是想不想得到,想到了10行搞定,想不到就很难

tricky

【在 h*****a 的大作中提到】
: 同意你说的,刚才没有offend你的意思。因为我觉得merge sorted array确实是比较基
: 础的问题。我觉得Minimum Path Sum, Search in Rotated Sorted Array II tricky
: 一些,主要在于是不是能给出最efficient和simple的code.

g*******s
发帖数: 2963
14
regular expressions那道题一开始感觉不难,但
写到最后是让我感觉最恶心的一道,即便用了答案里的优化思路还是很感觉恶心
r*****e
发帖数: 792
15
这题还好,我都能背下答案了。当时写wild card match觉得真难,写的递归
怎么也过不了大数据,有大半天的功夫再实验怎么能更快,后来才弄明白非递归
的才是最优解。好在那半天是上班时间,没亏,呵呵。

【在 g*******s 的大作中提到】
: regular expressions那道题一开始感觉不难,但
: 写到最后是让我感觉最恶心的一道,即便用了答案里的优化思路还是很感觉恶心

l****1
发帖数: 30
16
请问哪个网站有详细的标准答案可以参考,给我个link吧。

【在 g*******s 的大作中提到】
: regular expressions那道题一开始感觉不难,但
: 写到最后是让我感觉最恶心的一道,即便用了答案里的优化思路还是很感觉恶心

h*****a
发帖数: 1718
17
regular expr 是比较难的题目,不过现实中的实现都是用自动机,这种问题在
interview的时候问比较扯淡,用递归应付大部分的时候都不会有问题。
recover bst中序遍历总是需要一个栈吧?
search in rotated sorted array II 最坏情况O(n)没错,但碰到相等直接线性扫瞄确
实不是最优的。

logn

【在 l****1 的大作中提到】
: 嗯,有道理。 search in rotated sorted array ii 因为有duplicate我觉得没有logn
: 的方法,所以没往深了想直接线性扫描了。难道是我做错了。。。
: merge sorted array因为要in-place,不能额外allocate memory,就用A和B本身来
: merge,比一般的要tricky一些
: 同样,O(1) recover bst树不能用递归,不能用栈,只能用常数个指针而且在O(n)时间
: 要完成,我觉得也挺tricky的。
: regular expression直接上穷举法也能出结果,但是往深了想就需要证明 *|P|*的
: pattern里面完全不需要考虑前一个*,只需要保存最后一个,需要一定的分析。
: first missing positive的话其实考的是想不想得到,想到了10行搞定,想不到就很难
:

c******a
发帖数: 789
18
我到现在median of 2 sorted array还是过不了大oj,有几个错,555
l****1
发帖数: 30
19
前几天在G的campus和楼老大擦肩而过。。。不过我没敢上前去要签名。。。

【在 s******r 的大作中提到】
: 你不会是楼教主的马甲出来逗我们玩的吧:)
: 这实力,真的可以直接去面试了,绝对秒杀FLG啊。

r*****e
发帖数: 792
20
这个好像没有标准答案这一说吧,看看别人的code,倒是可以看出是不是
更简洁和高效。是不是最优解就不好说了。还得看面试官的水平了。

【在 l****1 的大作中提到】
: 请问哪个网站有详细的标准答案可以参考,给我个link吧。
相关主题
问到G家题Find the node with given value in binary tree in in-order
java问题Create Binary Tree from preorder and inorder arrays
求问一个Java问题请问LC上一道题:Validate BST
进入JobHunting版参与讨论
l****1
发帖数: 30
21
revover bst,不需要栈,中序遍历你只需要两个指针就够了。
array II 具体怎么优化,说说吧。

【在 h*****a 的大作中提到】
: regular expr 是比较难的题目,不过现实中的实现都是用自动机,这种问题在
: interview的时候问比较扯淡,用递归应付大部分的时候都不会有问题。
: recover bst中序遍历总是需要一个栈吧?
: search in rotated sorted array II 最坏情况O(n)没错,但碰到相等直接线性扫瞄确
: 实不是最优的。
:
: logn

r*****e
发帖数: 792
22
贴个2的code吧:
bool search(int arr[], int n, int target) {
if (!arr || n<=0) return false;
int low=0, high=n-1, mid;
while (low<=high) {
mid = low+(high-low)/2;
if (arr[mid]==target) return true;
if (arr[low] if (target>=arr[low]&&target else low = mid+1;
} else if (arr[mid] if (target>arr[mid]&&target<=arr[high]) low=mid+1;
else high = mid-1;
} else {
++low;//potentially, we fall into this case always =>linear
search
}
}
return false;
}

【在 l****1 的大作中提到】
: revover bst,不需要栈,中序遍历你只需要两个指针就够了。
: array II 具体怎么优化,说说吧。

l****1
发帖数: 30
23
ic. variation of bin_search, that's what I thought :-) thanks!

【在 r*****e 的大作中提到】
: 贴个2的code吧:
: bool search(int arr[], int n, int target) {
: if (!arr || n<=0) return false;
: int low=0, high=n-1, mid;
: while (low<=high) {
: mid = low+(high-low)/2;
: if (arr[mid]==target) return true;
: if (arr[low]: if (target>=arr[low]&&target: else low = mid+1;

h*****a
发帖数: 1718
24
interesting, 没stack你一路左指针下来找到最小之后怎么向上回去?

【在 l****1 的大作中提到】
: revover bst,不需要栈,中序遍历你只需要两个指针就够了。
: array II 具体怎么优化,说说吧。

r*****e
发帖数: 792
25
再贴一段code:
void recoverTreeCore(TreeNode *root, TreeNode *&prevNode, TreeNode *&big,
TreeNode *&small) {
if (!root) return;
recoverTreeCore(root->left, prevNode, big, small);
if (!prevNode) prevNode = root;
else {
if (root->val val) {
if (!big) big = prevNode;
small = root;
}
prevNode = root;
}
recoverTreeCore(root->right, prevNode, big, small);
}
void recoverTree(TreeNode *root) {
if (!root) return;
TreeNode *big=NULL, *small=NULL, *prevNode=NULL;
recoverTreeCore(root, prevNode, big, small);
if (!big) return;//nothing is wrong in the original BST
swap(big->val, small->val);
}

【在 h*****a 的大作中提到】
: interesting, 没stack你一路左指针下来找到最小之后怎么向上回去?
q****o
发帖数: 57
26
同哭。。。。。

【在 c******a 的大作中提到】
: 仰慕一下。我做了4个月了还剩几道实在过不了大OJ。。。。
h*****a
发帖数: 1718
27
当然是不用递归的了。用递归不是自动incur了栈的额外空间么?而且比直接用栈还差。

【在 r*****e 的大作中提到】
: 再贴一段code:
: void recoverTreeCore(TreeNode *root, TreeNode *&prevNode, TreeNode *&big,
: TreeNode *&small) {
: if (!root) return;
: recoverTreeCore(root->left, prevNode, big, small);
: if (!prevNode) prevNode = root;
: else {
: if (root->val val) {
: if (!big) big = prevNode;
: small = root;

r*****e
发帖数: 792
28
132道题到面试了也只做了128道,还有几道是抄别人答案满足一下自己的,呵呵。
word ladder那两题应该会,实在不想写了,写过一个类似的。text justification
压根就没打算写,觉得很无聊。还有个unique BST 2,也是不想写。
r*****e
发帖数: 792
29
哦,这个意思啊。我其实也有个iterative的code,不过是参考别人的,就不拿出
来献丑了。那个的确是没有用stack,但是code长了不少。

差。

【在 h*****a 的大作中提到】
: 当然是不用递归的了。用递归不是自动incur了栈的额外空间么?而且比直接用栈还差。
s*******e
发帖数: 1630
30
太猛了,除了膜拜,实在想不出什么话了。连一天3道都坚持不下来的飘过
相关主题
BST查找next lowest 可以达到 O(lg N)?大家leetcode的test case都过得去么?我的怎么经常不成?
弱问:leetcode里Convert Sorted List to Binary Search Tree问大家关于编程的经验
leetcode上的sorted list to BSTamazon 电面题
进入JobHunting版参与讨论
l****1
发帖数: 30
31
这个是用了栈的,所以还是O(n)的空间。
其实每个叶子节点的两个孩子指针都是废的,可以利用存下一个node的信息。这样用
loop就可以实现还不需要栈,所以是O(1)

【在 r*****e 的大作中提到】
: 再贴一段code:
: void recoverTreeCore(TreeNode *root, TreeNode *&prevNode, TreeNode *&big,
: TreeNode *&small) {
: if (!root) return;
: recoverTreeCore(root->left, prevNode, big, small);
: if (!prevNode) prevNode = root;
: else {
: if (root->val val) {
: if (!big) big = prevNode;
: small = root;

w**a
发帖数: 487
32
膜拜一下!
大牛你是CS科班么?

【在 l****1 的大作中提到】
: 传说中的leetcode用了一周业余时间做了一遍。 收获还不错,有那么几道值得想一想
: 的题目,全部列举如下:
: median of two sorted arrays
: regular expressions
: O(1) space to recover a BST
: in-place merge two sorted arrays
: first missing positive

s******r
发帖数: 65
33
我赌两毛钱lz原来是搞竞赛的。各大OJ上玩过的。
不过即使这样,一个礼拜做完leetcode的专注力我等也只能膜拜了
我就干一件事儿,把lz的帖子下载下来打印出来贴墙上,每天饭前饭后睡前睡后默读三
遍刺激自己就行了。。。

【在 w**a 的大作中提到】
: 膜拜一下!
: 大牛你是CS科班么?

h*****a
发帖数: 1718
34
能贴个code么,你到了叶子节点,上面parent的信息都存哪了?

【在 l****1 的大作中提到】
: 这个是用了栈的,所以还是O(n)的空间。
: 其实每个叶子节点的两个孩子指针都是废的,可以利用存下一个node的信息。这样用
: loop就可以实现还不需要栈,所以是O(1)

x*********w
发帖数: 533
35

二爷,出来看大牛 o >_< o

【在 k***x 的大作中提到】
: 2爷,快出来看又一条大牛。。。
l****1
发帖数: 30
36
我直接在leetcode窗口敲的代码,没本地保存。。。
大概思路就是不能一遍走完,每次都需要先提前走一遍左孩子的最右子孙就行。

【在 h*****a 的大作中提到】
: 能贴个code么,你到了叶子节点,上面parent的信息都存哪了?
p*****2
发帖数: 21240
37

morris算法,你看看我的code。

【在 h*****a 的大作中提到】
: 能贴个code么,你到了叶子节点,上面parent的信息都存哪了?
p*****2
发帖数: 21240
38

很牛呀。LZ什么背景呀?

【在 x*********w 的大作中提到】
:
: 二爷,出来看大牛 o >_< o

h*****a
发帖数: 1718
39
i c, thanks.

【在 p*****2 的大作中提到】
:
: 很牛呀。LZ什么背景呀?

s**********r
发帖数: 8153
40
我可以说我做半年了么

【在 c******a 的大作中提到】
: 仰慕一下。我做了4个月了还剩几道实在过不了大OJ。。。。
相关主题
amazon 电面题大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没
请教这么一个题:BST maximum sum path问题在哪儿啊 kth Node of BST,大家帮忙
这最小公共父母节点有bug吗?A家面经求Offer
进入JobHunting版参与讨论
I**********e
发帖数: 92
41
膜拜大神
e****d
发帖数: 333
42
140 problems / 7 days = 20 problems per day
20 mins per problem * 20 problems per day = 400 mins per day
400 mins / 60 mins per hour = 7 hours per day.
after 5pm, working on problems till mid night 12am, totally 7 hours, no
eating and any amusement.
or using day time in office?
r**h
发帖数: 1288
43
That's possible.
Half of LC's problems are not that hard. You can easily finish them within <
10 minutes.

【在 e****d 的大作中提到】
: 140 problems / 7 days = 20 problems per day
: 20 mins per problem * 20 problems per day = 400 mins per day
: 400 mins / 60 mins per hour = 7 hours per day.
: after 5pm, working on problems till mid night 12am, totally 7 hours, no
: eating and any amusement.
: or using day time in office?

C***U
发帖数: 2406
44
做了多久都没关系吧 不是为了做题而做题
到面试前都弄懂了 拿到offer才是最终目的么
对吧 :)

【在 s**********r 的大作中提到】
: 我可以说我做半年了么
s**********r
发帖数: 8153
45
呜呜,我可以接着说,我从来没拿到过面试么。。呜呜。。。

【在 C***U 的大作中提到】
: 做了多久都没关系吧 不是为了做题而做题
: 到面试前都弄懂了 拿到offer才是最终目的么
: 对吧 :)

c******a
发帖数: 789
46
慢慢准备,准备好了再出山。

【在 s**********r 的大作中提到】
: 呜呜,我可以接着说,我从来没拿到过面试么。。呜呜。。。
1 (共1页)
进入JobHunting版参与讨论
相关主题
Create Binary Tree from preorder and inorder arrays请教这么一个题:BST maximum sum path
请问LC上一道题:Validate BST这最小公共父母节点有bug吗?
BST查找next lowest 可以达到 O(lg N)?大家帮忙看看 问题在哪啊?由preorder 来建 bst,为什么后面没
弱问:leetcode里Convert Sorted List to Binary Search Tree问题在哪儿啊 kth Node of BST,大家帮忙
leetcode上的sorted list to BSTA家面经求Offer
大家leetcode的test case都过得去么?我的怎么经常不成?发现一个很恶心的基础问题
问大家关于编程的经验讨论几道google题(附个人答案)
amazon 电面题问到G家题
相关话题的讨论汇总
话题: prevnode话题: arr话题: root话题: mid话题: treenode