由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 题都感觉做对了,面试的人也满意,为什么二面过后还是直接悲剧呢……顺便上P面经
相关主题
twittier的onsite挂了,来问个常见题问一个时间复杂度的问题,数组里取k个最大数
一道面试题。自己设计的一道面试题
微软 Bing Ads team 面经Find the first k smallest numbers in an array.
请问一下最大增长子序列的O(nLogk)算法一道电面题
LinkIn面经哪位大写给说说 何时用 merge sort, 何时用 quick sort, 何时 heap sort
Uber 电面问个算法题8
bloomberg onsite 。amazon 2nd phone interview
一道小题2次电面后被amazon据了
相关话题的讨论汇总
话题: int话题: sum话题: acc话题: dp话题: elements
进入JobHunting版参与讨论
1 (共1页)
w**7
发帖数: 71
1
面试加州P公司
一面是华人GG
1. 给个数组,给个target, 求找两个数和等于target
然后拓展到找3个数,4个数,分析复杂度
这经典题,没啥说的,hashmap
一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
这个用hashmap存层数和路径长度值,从底层向上遍历
二面是个白人
2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个
数组排序
这就是弄个k size 的min-maxheap, 然后先把前0-k-1个元素放到heap里,然后从数组K
位置开始,从heap中取出最小,然后从数组取一个放到heap里,最后O(nlogk)排好
我把方法一说,interviewer感觉可以,说那你写个code发过来吧,然后do you have
any questions。没20分钟就结束了
两面感觉都没啥问题,最后周一就收thank you letter了。有好几次都这样,感觉
technical 题目都没啥问题,两面就悲剧,求经验……move on到麻木了,唉
c**y
发帖数: 2282
2
现在连playboy都招码工了啊

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

h*********n
发帖数: 11319
3
能面palantir的果然都是大牛

便上P面经
组K

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

d*****o
发帖数: 28
4
Thanks for sharing.
for q 1, if there are 4 numbers, does DP work better than Hash table?
for Q2: use DP, one dimensional array to keep the min accumulate sum for
current level. iterate through all the levels to get the min value.
For Q3: without using heap, but use the same partition approach as qsort.

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

R***i
发帖数: 78
5
Palantir就是这样。楼主的经历几乎和我当时一模一样。。题都做出来了,但还是挂了
。不过无所谓,后来拿到更好的offer
BTW 华人gg的last name是不是song啊?
w**7
发帖数: 71
6
唉……我那个是Chuang,应该是台湾人了。
感觉面得还不错呢,结果就这么不明不白的挂了
今天follow up Amazon发现给HR的信直接被系统退了,查无此人,打电话,号码无法链
接……唉

【在 R***i 的大作中提到】
: Palantir就是这样。楼主的经历几乎和我当时一模一样。。题都做出来了,但还是挂了
: 。不过无所谓,后来拿到更好的offer
: BTW 华人gg的last name是不是song啊?

d*****o
发帖数: 28
7
Q1: three numbers, use qsort, the time complexity is O(N^2).
Q3: for each 2K elements, use partition, so the first k elements must be the
first k elements in the final result, just disordered. use count sort to
sort the first k elements. for k+1 to 3k, do the same.
Total complexity is O(n).
g******7
发帖数: 1532
8
什么是屁公司?

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

m******e
发帖数: 88
9
正常,我面了几个月了,大部分自我感觉都很好,结果都没拿到。。。
A*********l
发帖数: 2005
10
1:
有DP的方法吧。
2:
直觉上感觉,是不是有DP的方法?或者是类似Dijkstra's的算法?(没仔细想,就是直觉)感觉
Dijkstra's比较像,所有到某个节点的path的weight就是这个节点的值。
3:
你的方法不对吧。
假定6个数,k=3,原来的顺序是: 1 5 3 4 2 6
heap 一开始是 1, 5, 3, 把 1 拿出来。
然后heap 是5,3, 4, 把 3 拿出来。
这排序就错了吧?3 排到2 前面去了。
要么我没看懂题或者是没看懂你原来的解法?

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

相关主题
Uber 电面问一个时间复杂度的问题,数组里取k个最大数
bloomberg onsite 。自己设计的一道面试题
一道小题Find the first k smallest numbers in an array.
进入JobHunting版参与讨论
w**7
发帖数: 71
11
1:求4组的时候确实要DP,问题变成求两个pair, 和为target,时间复杂度O(n^2);我说
Hashmap是两个数的情况
2:用hashmap也是DP啊,把中间的结果存起来, key是层数,value是当前最大值,只是
对于这个三角型,用数组感觉有很多空间浪费掉了,所以我就用hashmap
3:题目要求每个数字距离原本的距离最多为k,我当初是这么理解k的,像滑动窗口一
样,比如a[i]...a[i+k-1],根据你给的例子,5最多移到a[2]的位置。当初也问面试那
人,不过你这样说的意思是d = i+k - i, 也就是说实际窗口size比我多了一个,那我
的heap size+1就OK了,这个是窗口理解问题,本身用heap倒是应该没错.不过多谢提醒
,当初还真没想直接距离等于Index的差,就想着把他们当一个size为k的滑动窗口处理

直觉)感觉

【在 A*********l 的大作中提到】
: 1:
: 有DP的方法吧。
: 2:
: 直觉上感觉,是不是有DP的方法?或者是类似Dijkstra's的算法?(没仔细想,就是直觉)感觉
: Dijkstra's比较像,所有到某个节点的path的weight就是这个节点的值。
: 3:
: 你的方法不对吧。
: 假定6个数,k=3,原来的顺序是: 1 5 3 4 2 6
: heap 一开始是 1, 5, 3, 把 1 拿出来。
: 然后heap 是5,3, 4, 把 3 拿出来。

e******0
发帖数: 211
12
楼主,第一题用hashmap怎么解
多谢了
好运

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

w**7
发帖数: 71
13
大概写个伪代码,差不多就这样
input : a[], target
for(int i = 0; i < a.length; i++)
for(int j = 0; j < a.length; j++)
{
sum = a[i] + a[j];
if(hashmap.find(target-sum))
The four number is a[i], a[j], and the the element with index from
hashmap.getKey(target-sum)
else
if(hashmap.find(sum) == false)
hashmap.insert();
}

【在 e******0 的大作中提到】
: 楼主,第一题用hashmap怎么解
: 多谢了
: 好运

b**********r
发帖数: 91
14


【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

b**********r
发帖数: 91
15

use dp, it can be converted to the classical max path problem of squared
matrix, mirror the triangle around the n-th level, but the values at the
nth level should be doubled.
cock tail sort
or smooth sort (but writing smooth sort is too hard for interview)

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

g******0
发帖数: 221
16
可不可以讲一下金字塔的题目? 没看明白。。。
Let me see if I understand the problem:
Let the following be the pyramid.
level 1: n11
level 2: n21 n22
level 3: n31 n32 n33
level 4: n41 n42 n43 n44
...
level n: nn1 nn2 ... nnn
Find a path from n11 to any number in level n, such that the sum of the node
values encountered in the path is minimal.
What i don't understand is what counts as a valid move?
for example, going from n21 to the next level, are n31,n32 the only valid
moves? Is n33 not valid?
请大虾解释一下.谢谢了!

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

s*****y
发帖数: 897
17
So you could use the same element in the array more than once?

from

【在 w**7 的大作中提到】
: 大概写个伪代码,差不多就这样
: input : a[], target
: for(int i = 0; i < a.length; i++)
: for(int j = 0; j < a.length; j++)
: {
: sum = a[i] + a[j];
: if(hashmap.find(target-sum))
: The four number is a[i], a[j], and the the element with index from
: hashmap.getKey(target-sum)
: else

k***n
发帖数: 11247
18
外表要好好刀尺刀尺
m*****k
发帖数: 731
19

the
>so the first k elements must be the
>first k elements in the final result???
array: 2 4 1 3
k = 2

【在 d*****o 的大作中提到】
: Q1: three numbers, use qsort, the time complexity is O(N^2).
: Q3: for each 2K elements, use partition, so the first k elements must be the
: first k elements in the final result, just disordered. use count sort to
: sort the first k elements. for k+1 to 3k, do the same.
: Total complexity is O(n).

d*****o
发帖数: 28
20
array: 2 4 1 3
k = 2
qsort partition:
21 43
count sort:
12 34
相关主题
一道电面题amazon 2nd phone interview
哪位大写给说说 何时用 merge sort, 何时用 quick sort, 何时 heap sort2次电面后被amazon据了
问个算法题8G家面经
进入JobHunting版参与讨论
j******l
发帖数: 10445
21
只能说明楼主对自己的感觉有偏差。
医学上叫:神经性功能失调
P********p
发帖数: 1429
22
bless

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

a*******y
发帖数: 559
23
我还以为是PHOENIX。。。
x***n
发帖数: 70
24
Q3:qsort的话,每次从数组中取新的节点插入到待sort的数组应该怎么做呢?我想它还
可以用red-
black tree来做吧,这样插入时间复杂度为lgk,和lz的方法一样,整个的时间复杂度仍
为O(nlgk)
另外,counting sort好像不可以吧?并没有说这个数组中存放的是integer啊。

for
qsort.

【在 d*****o 的大作中提到】
: Thanks for sharing.
: for q 1, if there are 4 numbers, does DP work better than Hash table?
: for Q2: use DP, one dimensional array to keep the min accumulate sum for
: current level. iterate through all the levels to get the min value.
: For Q3: without using heap, but use the same partition approach as qsort.

x***n
发帖数: 70
25
请问下面这句话怎么理解呢:
The four number is a[i], a[j], and the the element with index from
hashmap.getKey(target-sum)
这样一共不就只有三个数么?
另外下面的insert是做什么的呢?谢谢。

from

【在 w**7 的大作中提到】
: 大概写个伪代码,差不多就这样
: input : a[], target
: for(int i = 0; i < a.length; i++)
: for(int j = 0; j < a.length; j++)
: {
: sum = a[i] + a[j];
: if(hashmap.find(target-sum))
: The four number is a[i], a[j], and the the element with index from
: hashmap.getKey(target-sum)
: else

x***n
发帖数: 70
26
q1:请问DP应该怎么写呢?非常感谢

for
qsort.

【在 d*****o 的大作中提到】
: Thanks for sharing.
: for q 1, if there are 4 numbers, does DP work better than Hash table?
: for Q2: use DP, one dimensional array to keep the min accumulate sum for
: current level. iterate through all the levels to get the min value.
: For Q3: without using heap, but use the same partition approach as qsort.

w**7
发帖数: 71
27
这个可能我代码什么的说的不清楚
对于处理4个数的情况:
思路就是通过两个循环,找到所有的pair(i,j),当然i!=j,这里的Pair就是从数组中
找到的两个数
然后再用之前套用两个数的情况,问题转换成找两个Pair,使得两个Pair的和等于
target.
所以为了防止重复
for(i = 0; i for( j = i+1; j pair(i,j) = {a[i], a[j]};
接下来的处理方法跟处理“找两个数,和等于target”一样了。

【在 x***n 的大作中提到】
: 请问下面这句话怎么理解呢:
: The four number is a[i], a[j], and the the element with index from
: hashmap.getKey(target-sum)
: 这样一共不就只有三个数么?
: 另外下面的insert是做什么的呢?谢谢。
:
: from

x***n
发帖数: 70
28
请问金字塔问题中的路径长度值是什么呢?

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

w**7
发帖数: 71
29
首先金字塔的形状大概是这样,有点像杨辉三角
L0: 1
L1: -1 3
L2: 3 2 4
L3: 5 6 7 8
也就是说第i层得第j个元素的child节点是i+1层得第j个和j+1个
hashmap key: <层数,序列号> 比如表示第i层的第j个
value表示从这个节点到底部路径上所有节点的value最大值
对于上面的例子:
开始处理最后一层
(<3, 0>, 5) (<3,1>, 6) (<3,2>, 7) (<3,3>, 8)
然后是L2:
处理<2,0>时,看他的child节点<3,0>,<3,1>取value最大的,6,然后加上自己的3
(<2,0>,9),同样<2,1>看<3,1> <3,2>取value最大的7,加上自己的2(<2,1>, 9)
(<2,2>, 12)
然后处理L1:

最后更新到L0,L0的value就是从L0到底部的路径最大值
这其实也是DP,用数组也可以,只是当时觉得三角形里用数组会浪费好多空间,直接
hashmap就是O(n)space

【在 x***n 的大作中提到】
: 请问金字塔问题中的路径长度值是什么呢?
d*****o
发帖数: 28
30
//Notes: may have bug, just show the ideas
Can not input in Chinese, so write in English -
Q1: code:
for k =3, psedocode: // (O(N^2))
input: A[], S
Arrays.sort(A); // O(NlogN)
for(int i = 0; i < A.length-2; i++) // O(N^2)
{
// set A': A - A[i]
findIt(A[i], S-A[i], A'); // find two element in A -A[i] sum to S -
A[i], O(N)
}
DP solution:
// not exactly the solution, just to decide how many K elements sum to
// a value S
input A[], N, K, S
N- size of the array
K- number of elements to be sumed (k=3,4,...)
S - Sum
// initialize
Table[N][K][S] = ...
for i = N to 0 {
for k = 0 to K {
for s = 0 to S {
if(k == 0)
{
if (s==0) {
table[i][k][s] = 1
} else {
table[i][k][s] = 0
} else if (i == N) {
table[i][k][s] = 0;
} else {
table[i][k][s] = table[i+1][k-1][s-A[p]] + table[i+1][k][s]
}
}
}
}
Result: table[0][K][S]
Q2: DP code
int p[n][n] = ...
int acc[n];
for(int i = 0; i < n; i++)
acc[i] = p[level-1][i];
int len = level-1;
for(int i = level-1; i >=0; i++)
{
for(int j = 0; j < len-1; j++)
acc[i] = Math.min(acc[i] + p[i][j], acc[i] + p[i][j+1]);
len--;
}
result: acc[0]
相关主题
T家电面一般有几轮? [UPDATE面经]一道面试题。
请教一个题,不太容易,要O(n)微软 Bing Ads team 面经
twittier的onsite挂了,来问个常见题请问一下最大增长子序列的O(nLogk)算法
进入JobHunting版参与讨论
d*****o
发帖数: 28
31
Correction:
Q2: DP code
int p[n][n] = ...
int acc[n];
for(int i = 0; i < n; i++)
acc[i] = p[level-1][i];
int len = level-1;
for(int i = level-1; i >=0; i--)
{
for(int j = 0; j < len-1; j++)
acc[i] = Math.min(acc[i] + p[i][j], acc[i] + p[i][j+1]);
len--;
}
result: acc[0]
x***n
发帖数: 70
32
非常感谢。这样算法复杂度为O(n2)对吧 我给想错了,认为是O(n3)了

【在 w**7 的大作中提到】
: 这个可能我代码什么的说的不清楚
: 对于处理4个数的情况:
: 思路就是通过两个循环,找到所有的pair(i,j),当然i!=j,这里的Pair就是从数组中
: 找到的两个数
: 然后再用之前套用两个数的情况,问题转换成找两个Pair,使得两个Pair的和等于
: target.
: 所以为了防止重复
: for(i = 0; i: for( j = i+1; j : pair(i,j) = {a[i], a[j]};

x***n
发帖数: 70
33
明白了 非常感谢

【在 w**7 的大作中提到】
: 首先金字塔的形状大概是这样,有点像杨辉三角
: L0: 1
: L1: -1 3
: L2: 3 2 4
: L3: 5 6 7 8
: 也就是说第i层得第j个元素的child节点是i+1层得第j个和j+1个
: hashmap key: <层数,序列号> 比如表示第i层的第j个
: value表示从这个节点到底部路径上所有节点的value最大值
: 对于上面的例子:
: 开始处理最后一层

x***n
发帖数: 70
34
也就是说在这个问题中,有这样一个限制吗:比如从i+1到i层,对i层的某个节点j,它
只能连接i+1层
的child节点(即第j个和第j+1个节点)吗?

【在 w**7 的大作中提到】
: 首先金字塔的形状大概是这样,有点像杨辉三角
: L0: 1
: L1: -1 3
: L2: 3 2 4
: L3: 5 6 7 8
: 也就是说第i层得第j个元素的child节点是i+1层得第j个和j+1个
: hashmap key: <层数,序列号> 比如表示第i层的第j个
: value表示从这个节点到底部路径上所有节点的value最大值
: 对于上面的例子:
: 开始处理最后一层

w**7
发帖数: 71
35
是的,跟杨辉三角一样

【在 x***n 的大作中提到】
: 也就是说在这个问题中,有这样一个限制吗:比如从i+1到i层,对i层的某个节点j,它
: 只能连接i+1层
: 的child节点(即第j个和第j+1个节点)吗?

f*****8
发帖数: 7581
36
可能不是你的问题
可能其他有面试的长得好看一点,刚好面试的是个好色的,哈哈。
good luck!!
T*x
发帖数: 786
37
那你四个数又重复怎么办?

【在 w**7 的大作中提到】
: 这个可能我代码什么的说的不清楚
: 对于处理4个数的情况:
: 思路就是通过两个循环,找到所有的pair(i,j),当然i!=j,这里的Pair就是从数组中
: 找到的两个数
: 然后再用之前套用两个数的情况,问题转换成找两个Pair,使得两个Pair的和等于
: target.
: 所以为了防止重复
: for(i = 0; i: for( j = i+1; j : pair(i,j) = {a[i], a[j]};

g******0
发帖数: 221
38
很真诚的感叹,你的algorithm好强啊!你一定会有好offer的。
HR说没说句的理由啊?面你的那个美国GG的lastname 是不是B开头的?

【在 w**7 的大作中提到】
: 首先金字塔的形状大概是这样,有点像杨辉三角
: L0: 1
: L1: -1 3
: L2: 3 2 4
: L3: 5 6 7 8
: 也就是说第i层得第j个元素的child节点是i+1层得第j个和j+1个
: hashmap key: <层数,序列号> 比如表示第i层的第j个
: value表示从这个节点到底部路径上所有节点的value最大值
: 对于上面的例子:
: 开始处理最后一层

w**7
发帖数: 71
39
谢啦,我最近一轮貌似又快被团灭了,这又投了20多个看看新一轮怎么样……
后来我给面我的人发信问了,他说他很suprise, 但是他的feedback肯定是positive的
,HR问了也没说为啥,只说鼓励继续申请……白人GG不是B开头的貌似,不过人不错了,
他们公司起码被拒follow up还是会回邮件的,只是真正为什么被拒,谁也不知道了。
anyway, 继续move on吧

【在 g******0 的大作中提到】
: 很真诚的感叹,你的algorithm好强啊!你一定会有好offer的。
: HR说没说句的理由啊?面你的那个美国GG的lastname 是不是B开头的?

m**q
发帖数: 189
40
Q3:
Count sort only works when the element values are within
a small range, which is not specified in the original problem.
Thus I think the overall complexity is O(nlgk) instead of O(n).

the
to

【在 d*****o 的大作中提到】
: Q1: three numbers, use qsort, the time complexity is O(N^2).
: Q3: for each 2K elements, use partition, so the first k elements must be the
: first k elements in the final result, just disordered. use count sort to
: sort the first k elements. for k+1 to 3k, do the same.
: Total complexity is O(n).

相关主题
请问一下最大增长子序列的O(nLogk)算法bloomberg onsite 。
LinkIn面经一道小题
Uber 电面问一个时间复杂度的问题,数组里取k个最大数
进入JobHunting版参与讨论
m**q
发帖数: 189
41
学习了..

【在 w**7 的大作中提到】
: 这个可能我代码什么的说的不清楚
: 对于处理4个数的情况:
: 思路就是通过两个循环,找到所有的pair(i,j),当然i!=j,这里的Pair就是从数组中
: 找到的两个数
: 然后再用之前套用两个数的情况,问题转换成找两个Pair,使得两个Pair的和等于
: target.
: 所以为了防止重复
: for(i = 0; i: for( j = i+1; j : pair(i,j) = {a[i], a[j]};

g******0
发帖数: 221
42
Q3, 听起来不对啊。Smallest number (assuming sorting in ascending order) is
in the first K elements. The 2nd smallest number is in the first K+1
elements. You were saying "first k elements must be the first k
elements in the final result, ", hmm... i think it's not correct or did
I miss something?

be the
sort to

【在 d*****o 的大作中提到】
: Q1: three numbers, use qsort, the time complexity is O(N^2).
: Q3: for each 2K elements, use partition, so the first k elements must be the
: first k elements in the final result, just disordered. use count sort to
: sort the first k elements. for k+1 to 3k, do the same.
: Total complexity is O(n).

m**q
发帖数: 189
43
我理解是这样的,前k小的元素包含在前2k的元素中,因为每个元素的位置和
最终的位置相差不超过k。选择第k个数做partition,把前2k个数分成
1~k, k+1~2k,则partition之后的前k个数就是最终sort之后的前k小
的数,只是这k个数之间现在还没有排序而已。
其中,选择2k个数中的第k个数可以在O(k)解决,partition也是O(k)。

【在 g******0 的大作中提到】
: Q3, 听起来不对啊。Smallest number (assuming sorting in ascending order) is
: in the first K elements. The 2nd smallest number is in the first K+1
: elements. You were saying "first k elements must be the first k
: elements in the final result, ", hmm... i think it's not correct or did
: I miss something?
:
: be the
: sort to

s*****d
发帖数: 66
44
是说选K个数做pivot么?那么该数也可以是最小的数,你partition晚怎么保证
前k个数就是最终sort之后的前k小?

【在 m**q 的大作中提到】
: 我理解是这样的,前k小的元素包含在前2k的元素中,因为每个元素的位置和
: 最终的位置相差不超过k。选择第k个数做partition,把前2k个数分成
: 1~k, k+1~2k,则partition之后的前k个数就是最终sort之后的前k小
: 的数,只是这k个数之间现在还没有排序而已。
: 其中,选择2k个数中的第k个数可以在O(k)解决,partition也是O(k)。

m**q
发帖数: 189
45
是先选择前2k个数中的第k小的数,这一步是selection,可以在O(k)内解决;
然后,用这个数做partition,则第1~k-1小的数在它左边,第k+1~2k小的数
在它右边,这个partition也是O(k)。不知道说清楚了没

【在 s*****d 的大作中提到】
: 是说选K个数做pivot么?那么该数也可以是最小的数,你partition晚怎么保证
: 前k个数就是最终sort之后的前k小?

r*******g
发帖数: 1335
46
一般估计面试官 不希望你用hash,因为需要额外内存开销,金字塔那个题从上到下很
简单。用heap来排序方法思路应该是对的。
k*j
发帖数: 153
47
想问一下这个partition的过程是in place的吗?还是要另外extra O(n)space
谢谢

【在 m**q 的大作中提到】
: 是先选择前2k个数中的第k小的数,这一步是selection,可以在O(k)内解决;
: 然后,用这个数做partition,则第1~k-1小的数在它左边,第k+1~2k小的数
: 在它右边,这个partition也是O(k)。不知道说清楚了没

h*********n
发帖数: 915
48
palantir? they are tough.
what's your answer for 3-sum, 4-sum, and k-sum?

【在 w**7 的大作中提到】
: 面试加州P公司
: 一面是华人GG
: 1. 给个数组,给个target, 求找两个数和等于target
: 然后拓展到找3个数,4个数,分析复杂度
: 这经典题,没啥说的,hashmap
: 一个金字塔,有n层,第i层有i个数,有点类似倒置的杨辉三角那种
: 让你找出一条路从塔顶到塔底,使得这条路链接的节点和最小
: 这个用hashmap存层数和路径长度值,从底层向上遍历
: 二面是个白人
: 2. 给个数组,没排序,已知数组中每个元素距离排序以后的位置最多是k,让你给这个

m**q
发帖数: 189
49
嗯,是in-place的

【在 k*j 的大作中提到】
: 想问一下这个partition的过程是in place的吗?还是要另外extra O(n)space
: 谢谢

1 (共1页)
进入JobHunting版参与讨论
相关主题
2次电面后被amazon据了LinkIn面经
G家面经Uber 电面
T家电面一般有几轮? [UPDATE面经]bloomberg onsite 。
请教一个题,不太容易,要O(n)一道小题
twittier的onsite挂了,来问个常见题问一个时间复杂度的问题,数组里取k个最大数
一道面试题。自己设计的一道面试题
微软 Bing Ads team 面经Find the first k smallest numbers in an array.
请问一下最大增长子序列的O(nLogk)算法一道电面题
相关话题的讨论汇总
话题: int话题: sum话题: acc话题: dp话题: elements