由买买提看人间百态

topics

全部话题 - 话题: nlgn
首页 上页 1 2 3 4 5 6 7 下页 末页 (共7页)
I*********g
发帖数: 93
1
来自主题: JobHunting版 - 谁有兴趣做道题?
关键是O(1)的space。
我知道有人做出了timeO(nlgn) space O(1)的算法
期待有人做出O(n)的
P*******7
发帖数: 55
2
来自主题: JobHunting版 - 一些面经
已面试facebook, bloomberg, linkedin三家,都拿到offer。在本版收益很多,特来回
馈。
背景:12月-4月找faculty全军覆没,5月份开始准备工业界面试,花了近1个月时
间将本版1万
多帖子过了一遍,发现绝大部分面试题都不出其中,非常有用。这里补充一些自己遇见
的题目:
推荐“A Collection of Dice Problems”,面试facebook时遇到不少概率题,都不超出
这篇文
章的思路和难度。
Lock-free algorithms。推荐
http://www.ibm.com/developerworks/java/library/j-jtp04186/index.html
Bloomberg题目较容易,比如一个数组只有0,1两个数字,如何O(n)time, O(1)space排
序。但
同样思路的题目在facebook就变成一个数组有k个不同数字,假设k是常数,如何O(n)
time,
O(1)space排序,现场写出程序还是很麻烦。
另外小尾羊曾总结O(nlgn)的算法找出最长增长序列,面试中有遇到。
排序和binary sear
I**A
发帖数: 2345
3
嗯,我说,有两种办法,一种呢O(nlgn),一种呢,可以借助hashtable达到O(n),
interviewer自己就说了,听听O(n)的,不过显然他知道这个算法。。
你这个interviewer自己不把题目搞清楚的确是比较奇怪。。
c******a
发帖数: 789
4
来自主题: JobHunting版 - 贡献两个Amazon的电话面试题
排序以后是要各自再过一遍d...
O(nlgn)+O(n), 后者可以忽略
naive那可是O(n^2),所以排序了再两个一起从头便利好。
r******e
发帖数: 80
5
来自主题: JobHunting版 - amazon phone interview
first round phone interview with Amazon with an India. Got rejected. share
the questions which hopes other people
Questions 1: ( I am not sure if I misunderstand his question but I share
what I know) Given n Integer numbers, all of the numbers except one occur
twice and only one occur once. Find it.
Solution 1: Sort the array and loop and find it. time O(nlgn), space O(1)
Solution 2: using hashtable, time O(n), space O(n)
And then, he said what about numbers can occur more than twice or
w******g
发帖数: 67
6
刚开始看书,理解不够深刻,哪位大侠给科普一下。
1. 这三个算法都平均复杂度都是 (nlgn), 该怎么选择用哪一种算法呢?
2. 看到以前有例子说n非常大的话用merge sort,几台机器分别sort,然后再merge,
这是为什么
呢?merge sort 不是需要而外的空间~n 吗?这时候用quicksort 会不会好一些?
多谢。
s***r
发帖数: 12
7
来自主题: JobHunting版 - 一道算法题
hashmap,O(n)
如果按字母顺序,treemap,O(nlgn)
z***9
发帖数: 696
8
来自主题: JobHunting版 - google second round interview
我也刚搞玩二面, 应该是老美,谈了谈我的research, he said that is interesting.
接着开始coding, 很简单,关于字符串的,不过没听清楚他在问什么,接着他讲了个
例子才明白。然后,simple solution,O(n^2), 接着binary search 优化O(nlgn),接
着bit map 优化 O(n), 接着时间到了。。。,
问题:
1) 刚开始没听清楚耽误了时间
2) simple solution coding 时出了个小错误,后纠正
不知到最后能不能onsite。。。
n*****y
发帖数: 361
9
来自主题: JobHunting版 - Offer + 很多面经
因为赶着年底毕业,九月底才开始投简历。这个offer来的太快,小startup就是动作快
,从十月初联系我,到 offer, 就两周。那几个大公司的 on-campus interview还都没
开始。也算是 hot startup,但这里肯定没人知道的,移民版知道这个公司的更多些。
就不透露公司的名字和考题了,见谅。
HR 联系之后,先是组里的头直接电面,问了一个他们实践中的问题,我没想出答案,
但还是扯了扯。后来就在谈公司做什么,我有准备,问了很多问题。刚放下电话,HR问
我什么时候作 coding test, 可以马上把题发给我, 就是fill Java class, 实现某些
功能,一般给 2-3个小时。我想这么大工作量,不能拖,否则牵扯时间和精力,就说马
上作,决定不准备了,冒一定风险。结果一个小时做完发给他们,小impress了一下。
然后另一个 team lead 马上打电话二面,顺便考察一下是不是真是我自己写的程序。
这就是一天三面,两电一编程,然后就给 onsite了。面了组里的4个lead,HR 和
Founder。前两个基本都在问我的 research和 big ... 阅读全帖
n*****y
发帖数: 361
10
来自主题: JobHunting版 - Offer + 很多面经
因为赶着年底毕业,九月底才开始投简历。这个offer来的太快,小startup就是动作快
,从十月初联系我,到 offer, 就两周。那几个大公司的 on-campus interview还都没
开始。也算是 hot startup,但这里肯定没人知道的,移民版知道这个公司的更多些。
就不透露公司的名字和考题了,见谅。
HR 联系之后,先是组里的头直接电面,问了一个他们实践中的问题,我没想出答案,
但还是扯了扯。后来就在谈公司做什么,我有准备,问了很多问题。刚放下电话,HR问
我什么时候作 coding test, 可以马上把题发给我, 就是fill Java class, 实现某些
功能,一般给 2-3个小时。我想这么大工作量,不能拖,否则牵扯时间和精力,就说马
上作,决定不准备了,冒一定风险。结果一个小时做完发给他们,小impress了一下。
然后另一个 team lead 马上打电话二面,顺便考察一下是不是真是我自己写的程序。
这就是一天三面,两电一编程,然后就给 onsite了。面了组里的4个lead,HR 和
Founder。前两个基本都在问我的 research和 big ... 阅读全帖
s*******r
发帖数: 47
11
来自主题: JobHunting版 - 发个Goldman Sachs的面经
那怎解? 没有限制用球数, 貌似平均时间O(nlgn)是最好的解法了
d****j
发帖数: 293
12
来自主题: JobHunting版 - ~~问两道AMAZON电面题
Sort的话不如直接弄个Set来表示目前candidate行的行号
刚开始,1-N个数全放进去
扫描第一列,检查Set的(行号,第一列)是否为1,是就删掉
扫描第二列,检查Set中剩下的行号的第二列是否为1,是就删掉
....
如果每次能删掉1/2的话,复杂度不就是
(N + N/2 + N/4 + N/8 +....)*O(set_operation) = 2N*O(set_operation)
Set如果用hash实现,查找删除就是O(1), 总共就是O(N)
如果用BST实现,总共就是O(NlgN)
t*****j
发帖数: 1105
13
来自主题: JobHunting版 - O(NlogN) largest rectangle in histogram
做好情况O(nlgn),最差情况还是O(n2)。

is
t*****j
发帖数: 1105
14
来自主题: JobHunting版 - 问两道amazon的面试题
popular 三连击那个,不需要排序吧,只需要给2n个指针,然后一个map就行了。复杂
度nlgn,别想太复杂了。
g*********s
发帖数: 1782
15
来自主题: JobHunting版 - Google phone interview
i think the 2-heap solutions is just sigma(O(lgK)) which implies O(NlgN)?
However, linear selection is sigma(O(K)) i.e. O(N^2).

complicat
gave up
J*********n
发帖数: 370
i****d
发帖数: 35
17
来自主题: JobHunting版 - 一道amazon题
TAOCP Vol.4介绍了一种据说很古老的方法,我觉得可行
唯一不便的是最开始需要把原始字符串拍个序
不过鉴于n! >> nlgn,所以我觉得也没啥问题
基本的思想是我们需要从1,2,3,...n 生成到 n,n-1,...1
只需要提供一个根据当前排列,生成下一个排列的方法就可以了
通过个例子也许更好描述一点
123
132
213
...
321
1. 每次从右向左扫描,碰到第一个a[j]停止,此时 a[j-1]....a[0] 是非递增的,但a
[j] < a[j-1]
比如说 132,我们就在1这个地方停止。因为从3往后看都是非递增的,但是从1看就不
是了,1<3。直观上理解,这时候后面的a[j-1]...a[0]已经是最大的了,要想更大,必
须得调整前面的数了。
2. 从a[j-1]...a[0]中找到一个刚好比a[i]大的数,交换a[j], a[i]。其实就是从0~j-
1扫描,碰到第一个a[i]>a[j]就找到了。或者你想二分查找也可以。
还是看132, 找到第一个比1大的是2,交换后变成231。
直观想的话,a[n-1]...a[j+1]我们显然不想动,因为只要活动a... 阅读全帖
i****d
发帖数: 35
18
来自主题: JobHunting版 - 请问一道面试题
印象中要用到range search
就是去BST里面找的时候
不然分析不出来O(nlgn)的 复杂度

such
corner
D*********y
发帖数: 876
19
来自主题: JobHunting版 - 请问一道面试题
先把x方向左右两条边都sort一下,O(nlgn)
然后用以下的判断:
bool overlap(Rect a, Rect b) {
return ( a.ul.x <= b.lr.x &&
a.ul.y >= b.lr.y &&
a.lr.x >= b.ul.x &&
a.lr.y <= b.ul.y );
}
其中ul是upper left,lr是lower right
找满足a.ul.x <= b.lr.x和a.lr.x >= b.ul.x的
然后把满足条件的矩形的y方向两条边,加上要比较的矩形本身,sort一下
找到满足a.ul.y >= b.lr.y和a.lr.y <= b.ul.y
v*******7
发帖数: 187
20
来自主题: JobHunting版 - 微软on-site面经(Intern)

solution #1:
using hashtable/hashmap that keeps track of (key, value) pairs where key is
the
element in array while value is the frequency.
scan each element e in the array, if e does not exist as a key in hashtable,
insert
(e, 1) into hashtable. If e exists in hashtable, move to the next one until
the end
of the array.
iterate the key in hashtable and store them in the old array.
Time Complexity: O(N), Space complexity: O(N).
solution #2:
sort the array first (quicksort, O(NlogN) in time on av... 阅读全帖
t****0
发帖数: 235
21
来自主题: JobHunting版 - AMAZON,GOOGLE 一面
this looks like nlgn

v*******7
发帖数: 187
22
来自主题: JobHunting版 - 算法题:min heap inplace变 BST

对,如果heap用binary tree来表示,那么需要有parent指针的信息,in place可以做
,我这里刚
才想了一个算法,是O(nlgn)的做法,可以做到。
我在想用array表示的heap转换成array 表示的BST要怎么做。
v*******7
发帖数: 187
23
来自主题: JobHunting版 - 算法题:min heap inplace变 BST

Sorry,呵呵,刚明白过来,要是用array表示的heap,那做起来更简单,因为不需要用
到parent
指针了,其他都一样,那么time complexity还是O(nlgn),也是inplace的。
t****0
发帖数: 235
24
来自主题: JobHunting版 - 算法题:min heap inplace变 BST
do you have to call
getMin n times to get the linked list?
that is nlgn
I think it does not matter if pointer or array is used to represent the
heap right?
t**d
发帖数: 352
25
来自主题: JobHunting版 - next larger element in unsorted array
what is the bug? I can't see the difference.
also, how's the runtime turn out to be n? isn't the worst time still n^2
because of the while loop? average time nLgn ?
l******l
发帖数: 66
26
来自主题: JobHunting版 - 刚电面完,分享两个题目
Here is a thought:
With the sorted index-value array x as above:
1. Left pointer start from x[0], using binary search (or linear search,
won't affect
overall big-O complexity ) find the first j (right pointer) such that
x[j].num-x[0].num>k;
then from j to the end, find the largest index, let it be m.
2. Now move left pointer to x[1], move right pointer from j to the left,
until we find the first j'
such that x[j'].num-x[1].num>k. Compare new indexes with m, update the new
m
. Also update the lar... 阅读全帖
S****z
发帖数: 666
27
来自主题: JobHunting版 - 刚电面完,分享两个题目
谁来解析一下为什么得先求这个最小下标,思路是啥?
然后后面的为每个i找j怎么就是O(nlgn)了?

【4
(2
=
J****a
发帖数: 15
28
来自主题: JobHunting版 - 刚电面完,分享两个题目
Based on ibread's method, I think this is easy to understand, welcome any
comments.
Example: [-2, 2, -1, 3, -6] and k=3
For step 2
1) 还是计算sum[i]。O(n) sum_origianl=(-2,0,-1,2,-4)
2)排序,排的时候以sum[i]为key,同时带上下标i。O(nlgn)
sum=[(-4, 4), (-2, 0), (-1, 2), (0, 1), (2 ,3)]
3)给排好序的 arrary, every i , sum[i]-k; O(n)
(in order to在排序好的sum数组中找 sum[j] 正好 <= sum[i]-k, so I create a
sumnew)
Sumnew=[(-7,4),(-5,0),(-4,2),(-3,1),(-1,3)], next step is 在sum中找 最小下
标。
4)找min-index[i]. O(n)
a=0, b=0;
Temp=n+1; (p... 阅读全帖
b*m
发帖数: 34
29
来自主题: JobHunting版 - 刚电面完,分享两个题目
似乎现在的解法都不太完美。
ihasleetcode 的算法有点诡异。
Using binary search, we found the smallest j that satisfies the condition
sorted_cum[i]+k >= sorted_cum[j]
这里 为什么用这个不等式sorted_cum[i]+k >= sorted_cum[j]
使你打错了造成了我们的误解吗?
假设i〉j s[i]-s[j]>=k 才是我们要的, 还是 这里有什么深意呢?求解释?
然后你是要找刚好满足条件的,这个binary search 似乎不能保证找的的是刚好满足条
件的临界位置,只能保证满足条件,所以这里要找到刚好满足条件的那个按你的算法似
乎还是要n*n。
然后
你这里的
min_index[] = {1, 1, 1, 1, 1, 1, 1, 6, 6, 10, 10}
max_index[] = {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10}
的实际物理意义是当前sorted cum array 当前对应的坐标后的元素中... 阅读全帖
y******5
发帖数: 43
30
来自主题: JobHunting版 - 又想起一道google题目
Brute Force: O(n^2)
D & C: O(nlgn)
Stack linear search: O(n)
It is an ACM question.
You can get the explanation here: http://www.informatik.uni-ulm.de/acm/Locals/2003/html/judge.html
y******5
发帖数: 43
31
来自主题: JobHunting版 - amazon二面
Thank you for your post.
2 念了一段code, 问我什么问题
int f(int x) {

if(x==1) return 1;

return x*f(x-1);
}
Problems:
(1). x<0
(2). overflow
4 一个int数组, 给你一个sum, 找出和是sum的两个int
solution 1: hash table, time complexity O(n), space complexity O(n)
solution 2: sort in-place, time complexity O(nlgn), space complexity O(1)
f*********i
发帖数: 197
32
来自主题: JobHunting版 - 生物男的Google面经节略版
That is not correct, the DP can be O(nlgn)
however, it need O(n) space, that is a problem.
The idea of DP goes like it:
int num = Integer.MAX_Value;
for(int i=1;i*i if(num > a[i*i]+a[n-i*i])
num = a[i*i]+a[n-i*i]
}
a[n] = num;
a[1]=1,a[2] =2,a[3] = 3, then use DP from n>=4
For each n, it need to compare logn times, overall time complexity is O(
nlogn) which is less than O(n^(3/2))

DP is O(n ^ (3/2) ) .
减枝不好算。不过,即使是Math.Int, 大于2B的数值,访问的node也不超过10万个(不
记得是4千还
是4万多)。
我程序里面统计了访问次数
g**e
发帖数: 6127
33
来自主题: JobHunting版 - 问个算法题5
wiki后面提供了一个O(nlgn)的,用到binary search
g***s
发帖数: 3811
34
来自主题: JobHunting版 - 湾区SNS公司面经
lijiang give a function my_swap with O(1) -- assume flip is O(1)
then you can use the my_swap function to implement O(nlgn) algorithm
g**e
发帖数: 6127
35
来自主题: JobHunting版 - 发面经,攒人品
第六题有比O(n)更快的方法吗?除了interval tree?但是建立树就要O(nlgn)了

new
3,
interval,
g*********s
发帖数: 1782
36
来自主题: JobHunting版 - Amazon onsite 面经
what is the complexity requirement?
i think O(NlgN) is easy to come up with.
g*********s
发帖数: 1782
37
来自主题: JobHunting版 - 贡献西部小公司面筋
赞。

n就可以吧?如果递减不成立就去更新递增,反之亦然。
相等?应该和先后抛无关吧。就像经典抽签问题,谁先抽都一样。
O(NlgN). what do you mean by "why" here?
what is this?
g*********s
发帖数: 1782
38
来自主题: JobHunting版 - 继续研究数组分段题
正整数的数组x[1..n],分成k段,找分段法,minimize the maximum sum of any
pieces,
minimize: MAX OF {sum of piece_1, sum of piece_2, ..., sum of piece_X}
dp:
f(n,k) = min { max { f(i,k-1), sum(x[j]) | i = 1..n, j = i+1..n } }
这个复杂度是O(K*N^2),可以加速到O(K*NlgN)?
如果输入改成非负整数数组呢?
如果改成任意整数呢?
二分法要求必须是正整数吧?
m**q
发帖数: 189
39
来自主题: JobHunting版 - 问个算法题, 关于区间 overlap的
这个思路不错。
感觉应该需要一些额外空间来记录start[]和end[]两个数组元素的对应关系,不过额外
空间也是O(n)的。
重复起点的问题可以在O(n)时间解决,最后扫一遍数组,减掉重复计算的值就行了。
ps:另外一种统计个数的方法是对每个区间二分查找,不用额外空间,不过就是O(nlgn)了
d*******l
发帖数: 338
40
来自主题: JobHunting版 - 问个算法题, 关于区间 overlap的
嗯,不过需要先排序所以还是O(nlogn)。上面讨论的区间树我有点记不清具体内容了,
但感觉如果建树再对每个区间查找所有overlap的区间,应该也不会好于O(nlogn)了吧
。不知有没有本质上更好的办法

nlgn)了
F**********r
发帖数: 237
41
来自主题: JobHunting版 - 问个算法题, 关于区间 overlap的
弱问每个区间怎么二分查找?

nlgn)了
t******g
发帖数: 252
42
来自主题: JobHunting版 - 问道amazon的面试题
O(nlgn)

consecutive
t******g
发帖数: 252
43
来自主题: JobHunting版 - 问道amazon的面试题
O(nlgn)

consecutive
w**n
发帖数: 122
44
来自主题: JobHunting版 - onsite面经
面了四个人(都是Sr. MTS) + HM
前面两个,感觉还可以。不会的,稍加提示,就答出来了。
HM带着吃午饭,没有技术问题,基本都是behavior问题,或者就是介绍他们现在做的东
西。
下午是两个女工程师,感觉就很差
有个女印印,问了很多怎么debug dump file的问题。这个弄得我很头疼。
而且明明我不是很在行, 她还不停地摁着这个方向反复问。
另外一个表情很严肃,老是皱眉头。跟她说话也很费劲。她连什么时候是call copy
constructor和什么时候call operator=都分不清楚。她问了不少database的问题,但
是我简历上完全没有DB经验。哎。。。
算法问得不太多, 也就问问概念层面的东西, 没让写程序
有什么排序算法, 各个的效率怎么样
什么情况下O(n^2)会比O(nlgn)效率更好
coding办(C++)问得很细, 概念问了很多
什么时候应该用initialization list
virtual inheritance
multi inheritance
virtual function
virtual constrctor/destru... 阅读全帖
h****a
发帖数: 70
45
来自主题: JobHunting版 - onsite面经
这个怎么答?
什么情况下O(n^2)会比O(nlgn)效率更好?
c********l
发帖数: 8138
46
来自主题: JobHunting版 - onsite面经
我觉得问题的本意好像不是这个
而是说什么情况下算法复杂度为O(n^2)的排序算法(如冒泡)
比O(nlgn)的排序(快速)效率更好?
m**q
发帖数: 189
47
来自主题: JobHunting版 - 问道题
程序有点没看懂,看描述复杂度是O(n^2)?
这题应该可以O(nlgn)的

..
H****s
发帖数: 247
48
来自主题: JobHunting版 - 问道题
这题就是 weighted interval scheduling 吧。 每个conference 的 weight就是它的
长度, 然后要求就总weight最大。 DP 就可解一般O(n^2), 使用特殊数据结构可以O(
nlgn)
c*******n
发帖数: 63
49
来自主题: JobHunting版 - CS algorithm question
1.sort three array first --> nlgn
2.1 form the first two elements --> n^2
2.2 find the third element of triplet --> lgn (binary search)
or as justcoder said, hash the third array, then the searching will be
O(1)
==> O(n^2 * lgn) or O(n^2)
f****4
发帖数: 1359
50
来自主题: JobHunting版 - 问道排序题
应该没有吧
假设存在O(nlgn),则有
T(n) = 2T(n/2)+f(n)
需要f(n) = O(n)
考虑2n+1个数
n个1, n个3
3 3 3 3...3 1 1 1 1...1 2
用reverse()改成
1 1 1 1...1 2 3 3 3 3...3
需要 f(n) = n + n*( (n+1)+n) = O(n^2)
最后需要的run time 是O(n^2)
首页 上页 1 2 3 4 5 6 7 下页 末页 (共7页)