由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 再发几个面试题
相关主题
发个刚面完的rocket fuel的面经吧amazon的一道题
刚看到的一道google面试题问一题:merge两个有序数组
3-way Partition 算法不容易求两个有序数组的median的平凡解法?
G一道题感恩发面经-Amazon第一轮电面
find median for k sorted arraysQuick selection for k unsorted arrays
M大小的数组中选出前N个元素 (如果M和N都很大)问道算法题
找第K个最小的元素找median有O(N)的算法吗?
问道面试题关于找Kth Min in 2 sorted array的问题(leetcode请进)
相关话题的讨论汇总
话题: int话题: swap话题: nmid话题: else话题: while
进入JobHunting版参与讨论
1 (共1页)
j********e
发帖数: 1192
1
1. http get和post的区别,追问到了具体http包里面的内容
2. 对web 安全的了解
3. 数据库问题,建表记录employee,department等
4. int数组,找出和为零的数字对 (老题了)
5. int数组,kth largest number (老题也有春天)
6. web问题,用户登录这些怎么在客户端记录(答曰饼干),后面一直追问
到php的session
p*****2
发帖数: 21240
2

第五题空间复杂度什么要求?

【在 j********e 的大作中提到】
: 1. http get和post的区别,追问到了具体http包里面的内容
: 2. 对web 安全的了解
: 3. 数据库问题,建表记录employee,department等
: 4. int数组,找出和为零的数字对 (老题了)
: 5. int数组,kth largest number (老题也有春天)
: 6. web问题,用户登录这些怎么在客户端记录(答曰饼干),后面一直追问
: 到php的session
:

j********e
发帖数: 1192
3
面试官没说,我说建个大小为K的heap,然后worst case
是O(N * logK),他就说OK了,没往下问。

【在 p*****2 的大作中提到】
:
: 第五题空间复杂度什么要求?

w****x
发帖数: 2483
4
第5题用selection algorithm吧
j********e
发帖数: 1192
5
median of median 那个?

【在 w****x 的大作中提到】
: 第5题用selection algorithm吧
w****x
发帖数: 2483
6
int GetKth(int a[], int n, int k)
{
assert(a && n > 0 && k <= n);

int* p = a;
int m = n;
while (k > 1)
{
int nMid = m/2;
swap(p[0], p[nMid]);

int i = 1;
int j = m-1;
while (i < j)
{
if (p[i] <= p[0])
i++;
else if (p[j] > p[0])
j--;
else swap(p[i], p[j]);
}

swap(p[0], p[i]);

if (i >= k)
m = i;
else
{
p = a+1+i;
m -= i+1;
}
}

return p[0];
}
j********e
发帖数: 1192
7
没看懂,介绍下思路?
感觉while(k>1)会导致死循环吧?好像while里没有改变k,也米有break

【在 w****x 的大作中提到】
: int GetKth(int a[], int n, int k)
: {
: assert(a && n > 0 && k <= n);
:
: int* p = a;
: int m = n;
: while (k > 1)
: {
: int nMid = m/2;
: swap(p[0], p[nMid]);

w****x
发帖数: 2483
8
刚才随手写的, 改正:
int GetKth(int a[], int n, int k)
{
assert(a && n > 0 && k <= n);
int* p = a;
int m = n;
while (k > 1)
{
int nMid = m/2;
swap(p[0], p[nMid]);
int i = 1;
int j = m-1;
while (i <= j)
{
if (p[i] <= p[0])
i++;
else if (p[j] > p[0])
j--;
else swap(p[i], p[j]);
}
swap(p[0], p[j]);
if (i >= k)
m = i;
else
{
p = a+1+i;
m -= i+1;
k -= i+1;
}
}
return p[0];
}
w****x
发帖数: 2483
9
k忘缩小了, i <= j 不是 i < j, 和p[j]交换不是p[i], bug啊~~
j********e
发帖数: 1192
10
看明白了。如果pivot选的很倒霉,worst case会到O(N^2)?
一般再用median of median来选pivot,那就麻烦了

【在 w****x 的大作中提到】
: 刚才随手写的, 改正:
: int GetKth(int a[], int n, int k)
: {
: assert(a && n > 0 && k <= n);
: int* p = a;
: int m = n;
: while (k > 1)
: {
: int nMid = m/2;
: swap(p[0], p[nMid]);

w****x
发帖数: 2483
11

考虑worst case的话那快排比堆排序慢多了. 但是一般情况下快排比对排序快,这体差
不多的感觉

【在 j********e 的大作中提到】
: 看明白了。如果pivot选的很倒霉,worst case会到O(N^2)?
: 一般再用median of median来选pivot,那就麻烦了

1 (共1页)
进入JobHunting版参与讨论
相关主题
关于找Kth Min in 2 sorted array的问题(leetcode请进)find median for k sorted arrays
这个怎么解:找到N^2个数的中数M大小的数组中选出前N个元素 (如果M和N都很大)
请教一个题: Median of Two Sorted Arrays找第K个最小的元素
两道google的题问道面试题
发个刚面完的rocket fuel的面经吧amazon的一道题
刚看到的一道google面试题问一题:merge两个有序数组
3-way Partition 算法不容易求两个有序数组的median的平凡解法?
G一道题感恩发面经-Amazon第一轮电面
相关话题的讨论汇总
话题: int话题: swap话题: nmid话题: else话题: while