由买买提看人间百态

topics

全部话题 - 话题: subarray
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)
y*****e
发帖数: 712
1
来自主题: JobHunting版 - FB电面面经
我当时放了i是因为自己写了几个test case,return的不是true or false, 而是
subarray的start和end index, 所以放了i好比较结果对不对。如果按原题只return
boolean的话,应该用hashset就可以。

了?
i******d
发帖数: 61
2
来自主题: JobHunting版 - FB电面面经
我也写了一下想return所有符合条件的subarray的start和end index,发现用hashmap也
没法return全,因为有可能sum[i]会重复,这样会丢掉一些i的信息。不知道有什么好
办法?
r*****e
发帖数: 30
W*********y
发帖数: 481
4
来自主题: JobHunting版 - G电面面经
不是的,其实是需要一个size 为 k+1的vector,其中k为最大increasing subarray 的
长度。
对本题只需找到k为3的解是否存在,因此空间constant,时间O(n)
bool kLIS(vector &data, int k){
vector stack(k+1);
int top = 0;
stack[0] = -1;
for(int i=0;i if(data[i]>stack[top]){
stack[++top] = data[i];
}
else{
auto low = lower_bound(stack.begin(), top+stack.begin(), data[i]);
*low = data[i];
}
if(top==k)
return true;
}
return false;
}
y*****e
发帖数: 712
5
来自主题: JobHunting版 - 刷题刷习惯了,今天面试二了。。
是subarray还是subsequence啊,就是说是不是必须是连续的?
y*****i
发帖数: 141
6
来自主题: JobHunting版 - 刷题刷习惯了,今天面试二了。。
subsequence。连续的。
subarray岂不是只要捡正数搞一起就行了?
C****t
发帖数: 53
7
来自主题: JobHunting版 - 一道老题
There are 2 ways to do these.
|--A1--|---A2---|---B1---B2---|
Evenly divide An and Bn into (A1,A2), (B1,B2) respectively.
len(A2) - len(A1) = len(B2) - len(B1) == 1 or 0 depends on odd or even.
Method 1: O(n*logn)
1a. Exchange A2 and B1.
1B. recursively do this on two new subarrays A1+B1, A2+B2
Method 2 : O(n)
2a. The idea is the same as Method 1. Now for each index from 0 to 2*n-1, we
have 4 different domains A1, A2, B1, B2.
2b. Map index of A1 to even index of 2*len(A1)
Map index of B... 阅读全帖
b**********5
发帖数: 7881
8
来自主题: JobHunting版 - 好挫的F家面经
恩, 以前在这板上看到过相似的另外一题, 就是只要return a boolean, whether
there's such subarray

1]
t****m
发帖数: 140
9
来自主题: JobHunting版 - FB电面面经,顺便求各种referral
楼主fresh MS,之前有大公司实习经历
谢谢版上的朋友refer了FB,之后拿到电面
一个中国小哥,人很nice,首先介绍了一下自己的组
问了一下我之前的经历
1.给你一个array of character,包括有digits, lower case char and upper case
char, 如何才能把他们sort成所有digits在前, 所有lower case在中间, upper
case 在最后,类似于sort color from leetcode
问了complexity,并且讨论了sort之后原有的digit的顺序是否改变, 各种讨论细节
这题依照leetcode,很顺利的写了出来
2.follow-up: 如果现在输入的array 包含有多种类型的char(lower case, upper
case, float。。。), 如何改变input, 使得我们能写出类似的代码
我给出的意见是除了原有的array of chars 之外,再给出一个array of array, 每个
subarray cover 一个category的范围,例如[['1', '... 阅读全帖
w*****1
发帖数: 6807
10
来自主题: JobHunting版 - zenefit 电面
max sum of subarray
c******n
发帖数: 4965
11
来自主题: JobHunting版 - 两道google的onsite题目
第一题我找到办法了
先做一维上的。 跟max sum subarray 类似, 把max 变成下面一个operation:
keep cumulative sum and its starting index, add the next number, if new sum
is larger than budget, keep moving the starting index to the right until
fits budget. keep the new sum.
然后用这个technique 把一维转为二维 http://www.geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/
用简单memoization 可以从n^6 变到n^4, 用以上technique 可以到 n^3
d*****5
发帖数: 1920
12
来自主题: JobHunting版 - 大家刷题也别忘了看看CS基础知识
弯曲小公司,最近面试了几个candidates,郁闷了。
某老中:
大哥题应该是刷了,出了两个简单的,很快bug free写出来了。我挺高兴。结果转头一
看隔壁烙印给他的Feedback一塌糊涂,因为几个基础知识题,什么JDK JRE区别,
arraylist and linkedlist 区别之类的,没答对,直接要fail。 转头给recruiter说
了说好话,又多给了一轮老美的phone interview。今天看feedback,凶多吉少。。。
某烙印女:
穿个脏兮兮的运动衫,还带这味就来面试了。算法一窍不通,binary tree访问告诉我
是O(1), 递归Fibonaci说是O(n). 题更是没刷过。max sum subarray连个最土的brute
force都写不出来。果断差评。转头看隔壁烙印给的feedback 非常好。会个singleton
就是会design pattern,知道啥是index就是数据库知识很强,知道java GC怎么工作就
是Java基础很好。擦。照例也被加试一轮老美的phone interview,今天看feedback,
很不错,估计要给... 阅读全帖
M**u
发帖数: 10158
13
来自主题: JobHunting版 - 大家刷题也别忘了看看CS基础知识
很有道理啊
who cares binary tree, max sum subarray...

brute
singleton
v*****y
发帖数: 68
p*u
发帖数: 2454
15
来自主题: JobHunting版 - 攒人品,报F家面经
pay attention to "contiguous subarray"
w*****1
发帖数: 6807
16
来自主题: JobHunting版 - 电话面试完之后还需要做啥么
第一次电面,刚电面完马鬃,面试官最后说hiring team稍后会联系我,然后就byebye了
请问我除了等待还是最好再需要做点什么?
面经就是max sum of subarray,经典题
r****8
发帖数: 22
17
来自主题: JobHunting版 - 面筋
networking背景。和web公司的风格不大一样。多个公司的面筋。希望对后来人,有帮
助。
implement a hash table
lru cache
two sum
void store(int val);
store the value
bool test(int target);
return true if two stored values who sum equals target
otherwise false
We want test really fast.
O(1) test
O(n) store
Given a binary tree where parent node value is minimum of two children node
values, find the second min.
given nested list, return sum. Sum is defined as depth*current sum
what is dead lock? how to prevent it?
implement a readlock
im... 阅读全帖
c******a
发帖数: 14
18
来自主题: JobHunting版 - liverampOA题目
上周写了liveramp的OA题,分享给大家:)
之前也看了大家的许多面经,回馈一下。
两道题比较第二道比较新。
1) Given an array A, find the index p, in which A[0] + A[1] +...+ A[p-1] = A
[p+1] + A[p+2] +.. + A[n-1]. Time complex O(n)
2) Given an array A, find the longest subarray which biggest element minus
smallest element not less than 1.
f********y
发帖数: 156
19
来自主题: JobHunting版 - liverampOA题目
大概这样做:
use an array len[ ] to keep track of the longest subarray ending at A[i]
use {min, minIndex } and {max, maxIndex} to keep track of current min/max
and their indices.
if A[i] > max + 1, then update max and clear min; set len[i] = 1
if A[i] < min -1, then update min and clear max; set len[i] = 1
if A[i] is between min and max, then set len[i] = len[i-1] + 1
if A[i] == max + 1 && minIndex < maxIndex, then min = max; max = A[i],
len[i] = len[i-1] + (maxIndex - minIndex)
if A[i] == min -... 阅读全帖
m******3
发帖数: 346
20
m******3
发帖数: 346
21
明白了,多谢beanbun!
g****c
发帖数: 11
22
来自主题: JobHunting版 - Linkedin onsite 面经
挂了有段时间了。现在上面经以答谢本版。
phone:
1. max sum subarray
2. tree level order traversal
onsite:
1. design a hash table
2. design a hash table, where the value must be stored in an append-only
file system
3. design a logging system which stores streams of integers within a time
period. implement get, put, getAvg
4. design an RSS feed
5. Edit distance; implement strstr
a*********8
发帖数: 140
23
来自主题: JobHunting版 - 2015夏天骑驴找马成功有感分享
这个版伙伴们积极分享的面经给我的帮助特别大。 看到常来的伙伴们,陆陆续续都拿
到offer,一直很受鼓舞, 我也终于拿到心仪的offer了。
我有过的严重教训和误区:
两年前,产生换工作念头后,不知道要刷leetcode题这一说, 也没来贵版查面经。因
为曾经差点拿到Google offer (没match上组), 就随便看了看data structure和sql
, 结果Google和 Facebook 电面都没过,深受打击。
一年前,还是不知道刷leetcode这个事的重要,直接上Tango, C3Energy, Microsoft,
Yahoo, AOL,还有几个一般名气的中小公司练手,都过了电面, 当然都止步于
onsite。和朋友聊起,上Leetcode网站去看,几乎考到的题,都在上面,这个懊恼的。
我在目前的驴子处,做Java/J2EE有5-6年了,以为只能申请用Java的公司。 最近半年
我来贵版越来越勤,看到热心的同胞贴的内推要求,也看到没有相关经验的伙伴,靠算
法就拿到大offer,受了启发 – 现在的热门公司都重算法,不重这个靠时间笨人烂人
也会积累的经验。
因为... 阅读全帖
E******g
发帖数: 204
24
来自主题: JobHunting版 - 报个L家店面面经,求onsite bless
上来10min讲了讲我现在的project,然后问了一些machine learning相关的概念,
然后写了一道Maximum subarray (leetcode 原题),
follow up:如果输入时Stream怎么办
代码写的比较快,后面又问了一些其他的和ML相关的概念
今天recruiter通知我onsite了,因为10月份比较忙,跟recruiter说了要到11月才可以
,不知道是不是拖的时间有点长?
求bless onsite一切顺利!
s*******t
发帖数: 255
25
来自主题: JobHunting版 - 报个L家店面面经,求onsite bless
Bless!

上来10min讲了讲我现在的project,然后问了一些machine learning相关的概念,然后
写了一道Maximum subarray (leetcode 原题),f........
s****t
发帖数: 467
26
来自主题: JobHunting版 - 近期的一些面经
找工作告一段落,把前一段面试的题目整理一下一起发出来。各个公司的放在一起了,
包括flu亚麻等。有店面也有onsite。
1. LRU cache
2. 一个整数数组,先递增然后递减,也有可能只有递增或者递减。查找某个整数在不
在数组里。
3. 设计Boggle游戏
4. OO design, 用树形结构表示表达式。注意operator要用多态实现。
5. 2 sum,一个元素只能用一次
6. 1)判断一个数组中是否有3个元素和为0,元素可以重用。2)merge k sorted
array。3)稀疏向量的点乘。
7. 一个数组,把非0的元素移动到开头。
8. 1) maximum subarray 2)树里两个节点的最低公共祖先 3)LC subset
9. 设计fb newsfeed
10. 大数相乘
11. 1) 给一段话,再给两个单词,求这两个单词在这段话里的最小距离 2)打印二叉
树(level order遍历)
12. 随机洗牌算法
13. 1)给一个字符串,返回每个字符及其个数。比如:aaabcc-> 3a1b2c 2) 给字符及
其个数,返回原本的字符串 3)media... 阅读全帖
f*******r
发帖数: 976
27
来自主题: JobHunting版 - 近期的一些面经
多谢分享,希望你早日拿到大offer

找工作告一段落,把前一段面试的题目整理一下一起发出来。各个公司的放在一起了,
包括flu亚麻等。有店面也有onsite。
1. LRU cache
2. 一个整数数组,先递增然后递减,也有可能只有递增或者递减。查找某个整数在不
在数组里。
3. 设计Boggle游戏
4. OO design, 用树形结构表示表达式。注意operator要用多态实现。
5. 2 sum,一个元素只能用一次
6. 1)判断一个数组中是否有3个元素和为0,元素可以重用。2)merge k sorted
array。3)稀疏向量的点乘。
7. 一个数组,把非0的元素移动到开头。
8. 1) maximum subarray 2)树里两个节点的最低公共祖先 3)LC subset
9. 设计fb newsfeed
10. 大数相乘
11. 1) 给一段话,再给两个单词,求这两个单词在这段话里的最小距离 2)打印二叉
树(level order遍历)
12. 随机洗牌算法
13. 1)给一个字符串,返回每个字符及其个数。比如:aaabcc-> 3a1b2c 2) 给字符及
... 阅读全帖
k****r
发帖数: 807
28
来自主题: JobHunting版 - 再爆个U家面经吧
版上好心人帮忙内荐的,在这里表示感谢。
店面:
sudoku solver。
昂塞:4轮
1.1 anagrams,秒了。
1.2 input String“[email protected]
/* */..[email protected]
/* */^^^2134nn..uber@
hello.edu.cn”
output 返回所有合理的address。java写到后来没写完,但是思路被认可。
2. input(String[] str1, String[] str2) 返回match str2里任一个的所有str1中的
元素(白板)。比如说str2是“hiw”,“abc”; str1是“hiw2”,“3hiw”, “
def”,“abc1”,应该返回“hiw2”,“3hiw”,“abc1”。这题交流不顺畅,写出
来一种方法,他看半天不懂,解释了半天,他似懂非懂,又说我的方法不efficient,
最后我似乎明白他要考啥,我说了一个treemap来解决的办法,他说ok,没时间再写
code了,也不知道是不是真的ok。
3. 聊messaging sy... 阅读全帖
f*******r
发帖数: 976
29
来自主题: JobHunting版 - 再爆个U家面经吧
Move on.

店面:
sudoku solver。
昂塞:4轮
1.1 anagrams,秒了。
1.2 input String“[email protected]
/* */..[email protected]
/* */^^^2134nn..uber@
hello.edu.cn” output 返回所有合理的address。java写到后来没写完,但是思路被
认可。
2. input(String[] str1, String[] str2) 返回match str2里任一个的所有str1中的
元素(白板)。比如说str2是“hiw”,“abc”; str1是“hiw2”,“3hiw”, “
def”,“abc1”,应该返回“hiw2”,“3hiw”,“abc1”。这题交流不顺畅,写出
来一种方法,他看半天不懂,解释了半天,他似懂非懂,又说我的方法不efficient,
最后我似乎明白他要考啥,我说了一个treemap来解决的办法,他说ok,没时间再写
code了,也不知道是不是真的ok。
3. 聊messaging system,聊背景。考了个a... 阅读全帖
I**********a
发帖数: 1183
30
来自主题: JobHunting版 - 发一批失败的面经
发一批跪了的面经吧,大多都是LC原题,所以一直也没发,跪的原因除个别是被黑,大
多确实是自己没吃透,大牛们看着笑笑就好了
1. Top K : Min/Max heap (搞对用哪个,不然 O(nlogk)就变成 O(nlogn), partial
quickselect
2. round robin iterator: 注意循环时,应该剪去空的sub-iterator以降低外层循环
次数
3. using stack implement queue: 1号stack倒到2号了,不用倒回来
4. LRU cashe: JAVA里linkedhashmap就已经实现了,被问到了不知道被鄙视。。
5. uni-value tree: 用了global variable图省事,被逮住问有什么不好,怎么解决
,以后再不给自己挖这种坑了,老老实实Pair返回
其他各种原题:
topology sort
maximum subarray ( less than a target sum, LC原题好像是〉=target)
text justification
number o... 阅读全帖
c*****m
发帖数: 271
31
别人分享的面经里面扩展的题,想不出O(N)的方法。请大牛们指点
j*****8
发帖数: 3635
32
这个有啥tricky的地方吗,难道不是加个condition check currSum >= target 就行?
c*****m
发帖数: 271
33
curSum < target的时候怎么操作呢?
j*****8
发帖数: 3635
34
继续加
if currSum < 0 then currSum = 0
else if currSum >= target && currSum > curMax then currMax = currSum
没仔细想,可能不对
j*****8
发帖数: 3635
35
那个也一样吧,只是不记录currMaxSum,而是currMaxLength

contiguous
c*****m
发帖数: 271
36
这种情况的话,在curSum < target时,不能把curSum重置0吧?比如target = 10,
array=[-1, 100],最大长度是2,而不是1
c*****m
发帖数: 271
37
和暴力的方法的复杂度都是O(N^2)的吧?
j*****8
发帖数: 3635
38
好像是。。
r*******g
发帖数: 1335
i******l
发帖数: 270
40
我想到了一个办法,刚刚试了一下,确实是O(N)的。
思路就是从两头往中间凑,先得到全部的和,如果满足条件就返回了,
如果不满足,比较两头的大小,每次减去小的那个,然后走一步,代码如下:
int maxSubLen( vector& data, int bar ) {
int sz = data.size(), sum = 0;
for( int i=0; i if( sum >= bar ) return sz;

int i = 0, j = sz-1;
while( i < j ) {
if( data[i] < data[j] ) sum -= data[i++];
else sum -= data[j--];
if( sum >= bar ) return j - i + 1;
}
return 0... 阅读全帖
a********g
发帖数: 36
41
有个反例子:{1,1,1,1,1,-9,7},target:5
正确的答案是1,1,1,1,1长度是5
而你的解法的答案是7,长度只有1
y*********e
发帖数: 518
42
如果array里面每一个数字都是正的话,那么有最优解时间O(N),空间O(1)。用一个
slicing window就好。
若是有负的数字,没有O(N)时间的解答,最好的是O(NlogN)。
b*****n
发帖数: 618
43
又想了一下,其实是有O(N)的解的。
先precompute sum array,b[x] = sum(a[0] + a[1] + ... + a[x])
然后问题相当于在b里面找两个个index i,j, i在左边j在右边, b[j] - b[i] >= tar
,并且要j - i的值最大。
所有可能作为i的candidate实际上只有从b[0]开始向右的严格递减subsequence,
因为假如x > y并且b[x] > b[y]的话,那么x不可能作为i,因为y作为i更好。
同样,所有可能作为j的candidate实际上只有从b[n]开始向左的严格递增subsequence。
举个例子,如果b = [5, 4, 2, 8, 3, 7]
那么i的可能其实只有index 0,1,2,
j的可能其实只有index 3,5
然后用两个pointer分别从这两个序列的尾部开始往前移动就可以了,时间复杂度整体
上是O(N)因为上面每一步都是O(N)
y*********e
发帖数: 518
44

tar
subsequence。
举个例子:b = [1, 5, 9, 4, 2, 8, 3, 7, 9]
按照你的算法,如何求 i 和 j 呢?
b*****n
发帖数: 618
45
这种情况下i只可能是0,因为后面没有比1小的了
j只可能是8,因为前面没有比9大的了
这个array里面没有比9-1更好也更长的b[j] - b[i]了
j*****8
发帖数: 3635
46
但如果当前 i, j 不满足条件并且 i 向右 j 向左 都可以时,先移动哪一个?
我把你的例子b稍微改了下 b = [6, 5,4,10,3,7], target = 4
i 还是可选 0,1,2;j 还是可选3,5
i = 0, j = 5 时不满足条件,这个时候先移 i 还是 j? 感觉按你的算法应该先移 i
, 但那样就拿不到 i = 0 j = 3 的解了?

tar
subsequence。
b*****n
发帖数: 618
47
这个例子里面
i可以选 0,1,2,4
j可以选3,5
i和j都应该从最右边,也就是最大的index开始往左边走,跟sliding window的思路类
似,i开始是4,j开始是5,如果发现a[j] - a[i] >= tar就移动i,反之移动j,相当于
对每个可能的j求最小的i是多少

i
j*****8
发帖数: 3635
48

~~~~~~~~~~~~~~~~~~~~~
那时间复杂度就不是线性的了。可能都从右开始能解
决这个例子,但我总觉得还会有别的反例,虽然现在没想出来。。
b*****n
发帖数: 618
49
仍然是线性的,i和j都最多有n个,每一步要么i往坐移要么j往坐移,最多O(2n)。
反例应该是没有的,利用的就是两个sequence其实都是从左往右递增的序列。
r****7
发帖数: 2282
50
这个不是lc上的原题么?
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)