Redian新闻
>
写个面经 分享一些题目
avatar
写个面经 分享一些题目# JobHunting - 待字闺中
h*p
1
常见就略去了
1) 不能再常见的题了,判断是否是BST 很简单 我用了递归的版本 然后接着问What
if the most left leaf value equal Integer.MIN_VALUE?
2) 数组(任意数组)find break point使得两边子数组(子数组必须至少有一个
element)sum的差最大 followup: 如
果找2个break point呢(假设2个点把数组分成3个子数组的sum是A,B,C 差异就是|A-B|
+|B-C|+|C-A| )?使得三个子数组差异最大。。。然后是n的情况。。。后面卡住了没
找出规律。
3) interval的变形 给定很多的timeslots有开始时间和结束时间 让你返回所有有
冲突的timeslot
大家可以写一下交流交流
avatar
s*e
2
谢谢!顶!
avatar
u*o
3
找数组break point使得两边子数组差最大
这个数组是ROTATED SORTED ARRAY?中间有个转折点?不太明白题意啊LZ。。。
avatar
x*2
4
第2题大于2个点怎么定义差异最大?

What

【在 h****p 的大作中提到】
: 常见就略去了
: 1) 不能再常见的题了,判断是否是BST 很简单 我用了递归的版本 然后接着问What
: if the most left leaf value equal Integer.MIN_VALUE?
: 2) 数组(任意数组)find break point使得两边子数组(子数组必须至少有一个
: element)sum的差最大 followup: 如
: 果找2个break point呢(假设2个点把数组分成3个子数组的sum是A,B,C 差异就是|A-B|
: +|B-C|+|C-A| )?使得三个子数组差异最大。。。然后是n的情况。。。后面卡住了没
: 找出规律。
: 3) interval的变形 给定很多的timeslots有开始时间和结束时间 让你返回所有有
: 冲突的timeslot

avatar
h*p
5
原帖上 解释了下 看下吧~

【在 x******2 的大作中提到】
: 第2题大于2个点怎么定义差异最大?
:
: What

avatar
u*o
6
如果有一个break point, 是不是找出最小值, 自己为一组,其他所有的数为一组呢?

What
-C

【在 h****p 的大作中提到】
: 常见就略去了
: 1) 不能再常见的题了,判断是否是BST 很简单 我用了递归的版本 然后接着问What
: if the most left leaf value equal Integer.MIN_VALUE?
: 2) 数组(任意数组)find break point使得两边子数组(子数组必须至少有一个
: element)sum的差最大 followup: 如
: 果找2个break point呢(假设2个点把数组分成3个子数组的sum是A,B,C 差异就是|A-B|
: +|B-C|+|C-A| )?使得三个子数组差异最大。。。然后是n的情况。。。后面卡住了没
: 找出规律。
: 3) interval的变形 给定很多的timeslots有开始时间和结束时间 让你返回所有有
: 冲突的timeslot

avatar
h*p
7
break point是把数组分成两个子数组。。不是让你随机组合

【在 u*****o 的大作中提到】
: 如果有一个break point, 是不是找出最小值, 自己为一组,其他所有的数为一组呢?
:
: What
: -C

avatar
o*e
8
第二个题目,如果只有一个break point,比较好做,其实先算一个总和,然后看不同的
分割点之前的和与总和的差值。如果多点break point,是不是用dynamic programming
了?

What
B|

【在 h****p 的大作中提到】
: 常见就略去了
: 1) 不能再常见的题了,判断是否是BST 很简单 我用了递归的版本 然后接着问What
: if the most left leaf value equal Integer.MIN_VALUE?
: 2) 数组(任意数组)find break point使得两边子数组(子数组必须至少有一个
: element)sum的差最大 followup: 如
: 果找2个break point呢(假设2个点把数组分成3个子数组的sum是A,B,C 差异就是|A-B|
: +|B-C|+|C-A| )?使得三个子数组差异最大。。。然后是n的情况。。。后面卡住了没
: 找出规律。
: 3) interval的变形 给定很多的timeslots有开始时间和结束时间 让你返回所有有
: 冲突的timeslot

avatar
l*c
9
第二题能不能用一个空数组
1. 从左到右扫一遍 记录如果这个点是breakpoint 左边的和
2. 从右到左扫一遍 计算如果当前点是breakpoint 右边的数的和
然后得到最大值
n个点还不知道怎么搞……

What
B|

【在 h****p 的大作中提到】
: 常见就略去了
: 1) 不能再常见的题了,判断是否是BST 很简单 我用了递归的版本 然后接着问What
: if the most left leaf value equal Integer.MIN_VALUE?
: 2) 数组(任意数组)find break point使得两边子数组(子数组必须至少有一个
: element)sum的差最大 followup: 如
: 果找2个break point呢(假设2个点把数组分成3个子数组的sum是A,B,C 差异就是|A-B|
: +|B-C|+|C-A| )?使得三个子数组差异最大。。。然后是n的情况。。。后面卡住了没
: 找出规律。
: 3) interval的变形 给定很多的timeslots有开始时间和结束时间 让你返回所有有
: 冲突的timeslot

avatar
H*S
10
感觉第二题有点像刷墙那题的变种。如果没有什么非常clever的pattern yet to
discover,就必然是DP无疑了。。。
avatar
c*p
11
Mark
avatar
s*g
12
这样需要两个数组吧?

【在 l*****c 的大作中提到】
: 第二题能不能用一个空数组
: 1. 从左到右扫一遍 记录如果这个点是breakpoint 左边的和
: 2. 从右到左扫一遍 计算如果当前点是breakpoint 右边的数的和
: 然后得到最大值
: n个点还不知道怎么搞……
:
: What
: B|

avatar
p*2
13
n点就是个二维dp吧?
avatar
h*p
14
2爷,第三题有什么好思路?

【在 p*****2 的大作中提到】
: n点就是个二维dp吧?
avatar
h*5
15
这个怎么处理,麻烦楼主讲一下
然后接着问What
: if the most left leaf value equal Integer.MIN_VALUE?
avatar
l*c
16
一个就行 算右边的时候 直接算绝对值就行了

【在 s***g 的大作中提到】
: 这样需要两个数组吧?
avatar
h*p
17
我提了下big Integer,面试官也没怎么反馈,不知道大家怎么看?
第2题的扩展面试官最后也说了 会很复杂 不期望我能答出来,就是想看看我有什么思路
第3题大家有什么思路吗

【在 h********5 的大作中提到】
: 这个怎么处理,麻烦楼主讲一下
: 然后接着问What
: : if the most left leaf value equal Integer.MIN_VALUE?

avatar
D*6
18
加个check就行了。

【在 h********5 的大作中提到】
: 这个怎么处理,麻烦楼主讲一下
: 然后接着问What
: : if the most left leaf value equal Integer.MIN_VALUE?

avatar
s*e
19
3. sorting on start time and then move to check till a start time is bigger
than the end time of the currently checked one. keep going. might not be
optimal. seems to be able to borrow kmp idea for reducing the time.
avatar
z*e
20
第三个sort一下
avatar
z*e
21
这个sort还是比较生僻的
需要实现Comparator接口

bigger

【在 s******e 的大作中提到】
: 3. sorting on start time and then move to check till a start time is bigger
: than the end time of the currently checked one. keep going. might not be
: optimal. seems to be able to borrow kmp idea for reducing the time.

avatar
h*p
22
怎么check?

【在 D****6 的大作中提到】
: 加个check就行了。
avatar
D*6
23
most left leaf is MIN_VALUE or most right leaf is MAX_VALUE, 都是special
case需要额外check. 他不是这意思??
if(root.left == null && root.val == Integer.MIN_VALUE)
return true;

【在 h****p 的大作中提到】
: 怎么check?
avatar
p*2
24

具体我也不清楚要求,感觉sort一下应该就能处理了吧。

【在 h****p 的大作中提到】
: 2爷,第三题有什么好思路?
avatar
p*2
25

这个需要特殊处理吗?

【在 h********5 的大作中提到】
: 这个怎么处理,麻烦楼主讲一下
: 然后接着问What
: : if the most left leaf value equal Integer.MIN_VALUE?

avatar
v*n
26
mark!
avatar
f*b
27
mark
avatar
c*e
28
sort之后怎么弄? interval tree到是可以,觉得写code有点难

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