由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 我在微软做interviewer的经验
相关主题
Median of Two Sorted Arraysc++ 问题
median of two sorted arrays的时间复杂度(附上了过了oj的代码)details 2nd smallest element in an array
Median of Two Sorted Arrays之MIT解法的一个问题。。从水木上看到个数组题
算法题:两列找共同元素有O(n)的算法吗?C++ Q78: about sizeof
一道 C++ 的题。Question:Given a array,find out if there exist a subarray such its sum is zero
C++里get array size的问题Palantir面经
O(N) sort integer arrayfind k missing numbers in range [0, N].
一个实际的排序问题How to find the size of an array? Thanks.
相关话题的讨论汇总
话题: int话题: k1话题: half话题: place话题: k2
进入JobHunting版参与讨论
1 (共1页)
g****n
发帖数: 431
1
说说我做面试时的一些想法吧,希望对找工作的朋友有用。
在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
跟我们组其他同事交流过,也有一样的想法。
c********t
发帖数: 1756
2
多谢提醒!!!
D***h
发帖数: 183
3
怎么提高呢?

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

D***h
发帖数: 183
4
另外边界条件不是要在主体部分写完后回头来慢慢完善吗?

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

j**l
发帖数: 2911
5
两个长度为m和n的有序数组找median, 如果给的是O(m+n)的算法而不是O(log(m+n))的
算法,就不给过对么?

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

f*********5
发帖数: 576
6
我看板上很多人的面经,虽然并未给出最优算法也拿到offer了。
就像楼主说的,实际工作中很多时候并没有很复杂的算法,你的算法复杂度绝大多数情况
无法成为program的瓶颈。
###当然那种大规模数据处理,对timing要求很高的程序除外

【在 j**l 的大作中提到】
: 两个长度为m和n的有序数组找median, 如果给的是O(m+n)的算法而不是O(log(m+n))的
: 算法,就不给过对么?

j**l
发帖数: 2911
7
也许面试者就那道题临场写不好,但还是when in doubt, no hire, 对么?

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

g****n
发帖数: 431
8
对。如果一个程序的算法到了影响整个项目效率的地步,一般是不会让一个两个人来自
己写的,一般都是专门设计,并且大家讨论的结果。最后落到每个人手上的只是实现。

情况

【在 f*********5 的大作中提到】
: 我看板上很多人的面经,虽然并未给出最优算法也拿到offer了。
: 就像楼主说的,实际工作中很多时候并没有很复杂的算法,你的算法复杂度绝大多数情况
: 无法成为program的瓶颈。
: ###当然那种大规模数据处理,对timing要求很高的程序除外

j**l
发帖数: 2911
9
就算允许用O(m+n)的方法找median
有多少人可以一次写对写全没有bug? 很容易忘记数组下标判断的

情况

【在 f*********5 的大作中提到】
: 我看板上很多人的面经,虽然并未给出最优算法也拿到offer了。
: 就像楼主说的,实际工作中很多时候并没有很复杂的算法,你的算法复杂度绝大多数情况
: 无法成为program的瓶颈。
: ###当然那种大规模数据处理,对timing要求很高的程序除外

g****n
发帖数: 431
10
这个一般不会。效率低有时是一些小的东西。比如对空间的使用,循环的使用,可能时
间复杂度都是一样的,但不同的实现能体现出编程的基本功。

【在 j**l 的大作中提到】
: 两个长度为m和n的有序数组找median, 如果给的是O(m+n)的算法而不是O(log(m+n))的
: 算法,就不给过对么?

相关主题
C++里get array size的问题c++ 问题
O(N) sort integer arraydetails 2nd smallest element in an array
一个实际的排序问题从水木上看到个数组题
进入JobHunting版参与讨论
b******v
发帖数: 1493
11
确实很有用,多谢提醒!

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

g****n
发帖数: 431
12
这个不好说,临场写不好也有很多种情况,看是不是严重的问题吧。面试一般有多个人
,一个人的feedback是doubt一般不会影响hire。只要不是3,4个人一起doubt就行:)

【在 j**l 的大作中提到】
: 也许面试者就那道题临场写不好,但还是when in doubt, no hire, 对么?
j**l
发帖数: 2911
13
谁自告奋勇用面试的时间写一个?
两个长度为m和n的有序数组找median
O(m+n)时间,O(1)空间
总数为奇数则返回中间值,总数为偶数则返回中间两个值的算术平均
2, 3, 8, 9的median为(3 + 8) / 2 = 5, 如果是整数除法
输入的m, n都是整数,可正可负可0
假定输入数组是整数数组
int FindMedian(int A[], int m, int B[], int n);

【在 j**l 的大作中提到】
: 就算允许用O(m+n)的方法找median
: 有多少人可以一次写对写全没有bug? 很容易忘记数组下标判断的
:
: 情况

j**l
发帖数: 2911
14
然后让geenon用MSFT面试的标准评论一下,哈哈

【在 j**l 的大作中提到】
: 谁自告奋勇用面试的时间写一个?
: 两个长度为m和n的有序数组找median
: O(m+n)时间,O(1)空间
: 总数为奇数则返回中间值,总数为偶数则返回中间两个值的算术平均
: 2, 3, 8, 9的median为(3 + 8) / 2 = 5, 如果是整数除法
: 输入的m, n都是整数,可正可负可0
: 假定输入数组是整数数组
: int FindMedian(int A[], int m, int B[], int n);

s**********9
发帖数: 1238
15
请问GFS的网络工程师职位面试一般咋面?
下周应该有个ONSITE在MSFT,心里没底啊!
f*********5
发帖数: 576
16
这题老难了,写2H都不见得把所有的情况都cover。。。

【在 j**l 的大作中提到】
: 谁自告奋勇用面试的时间写一个?
: 两个长度为m和n的有序数组找median
: O(m+n)时间,O(1)空间
: 总数为奇数则返回中间值,总数为偶数则返回中间两个值的算术平均
: 2, 3, 8, 9的median为(3 + 8) / 2 = 5, 如果是整数除法
: 输入的m, n都是整数,可正可负可0
: 假定输入数组是整数数组
: int FindMedian(int A[], int m, int B[], int n);

r****o
发帖数: 1950
17
这题我也觉得很难,难度可以算个准长老题。还有个变种是2个sorted array,长度不
一定相等,用O(lgn)时间找出第k大的数。

【在 f*********5 的大作中提到】
: 这题老难了,写2H都不见得把所有的情况都cover。。。
f*********5
发帖数: 576
18
纠正一下,其实算法的思想比较简单/直接。
就是需要考虑各种情况,有些麻烦。
难度上来讲倒不是特别难

【在 r****o 的大作中提到】
: 这题我也觉得很难,难度可以算个准长老题。还有个变种是2个sorted array,长度不
: 一定相等,用O(lgn)时间找出第k大的数。

r****o
发帖数: 1950
19
我个人觉得难题有两种,一种是想不出来怎么做的,另一种是大致知道怎么做,但是就
是写不出来正确答案的。后一种往往是于细微处见功夫。

【在 f*********5 的大作中提到】
: 纠正一下,其实算法的思想比较简单/直接。
: 就是需要考虑各种情况,有些麻烦。
: 难度上来讲倒不是特别难

t***s
发帖数: 602
20
恩,挺对的,现在在做实习,觉着自己是挺侥幸答对了算法题来这儿,但真正工作里头
真的基本功太重要了

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

相关主题
C++ Q78: about sizeoffind k missing numbers in range [0, N].
Question:Given a array,find out if there exist a subarray such its sum is zeroHow to find the size of an array? Thanks.
Palantir面经nvidia面试题
进入JobHunting版参与讨论
g****n
发帖数: 431
21


【在 t***s 的大作中提到】
: 恩,挺对的,现在在做实习,觉着自己是挺侥幸答对了算法题来这儿,但真正工作里头
: 真的基本功太重要了

j**l
发帖数: 2911
22
如果用O(m+n), 也就是砍去一半的数,比log(m+n)那个好写,
但也很容易有bug

【在 f*********5 的大作中提到】
: 纠正一下,其实算法的思想比较简单/直接。
: 就是需要考虑各种情况,有些麻烦。
: 难度上来讲倒不是特别难

a*d
发帖数: 47
23
边界条件确实比较讨厌。
我调试了好久才搞好的。
// a[0..m-1], m
// b[0..n-1], n
int select_kth_from_arrays(int *a, int m, int *b, int n, int k)
{
static int i = 0;
i++;
printf("recursion %d.\n", i);
if (k==0) {
if (a[0] return a[0];
else
return b[0];
}
int k1 = k/2;
int k2 = k1;
// check array boundray
if (k1 > m-1) k1 = m-1;
if (k2 > n-1) k2 = n-1;
if (a[k1] < b[k2]) {
if (k1 == m-1)
return b[k-m];
ret

【在 f*********5 的大作中提到】
: 这题老难了,写2H都不见得把所有的情况都cover。。。
h*****2
发帖数: 114
24
#include
using namespace std;
int main(void)
{
bool isOdd(false);
int A[] = {2,5,7,8,9};
int B[] = {1,3,4,7,9,10};
int m=sizeof(A)/sizeof(int), n=sizeof(B)/sizeof(int);
int Half_Place;
if((m+n)%2 == 1)
{
isOdd = true;
Half_Place = (m+n)/2+1;
}
else
Half_Place = (m+n)/2;
int i=0, m_temp(0), n_temp(0);
int Value;
int current_A, current_B;
while(i < Half_Place)
{
if(A[m_temp] < B[n_temp])
{


【在 j**l 的大作中提到】
: 谁自告奋勇用面试的时间写一个?
: 两个长度为m和n的有序数组找median
: O(m+n)时间,O(1)空间
: 总数为奇数则返回中间值,总数为偶数则返回中间两个值的算术平均
: 2, 3, 8, 9的median为(3 + 8) / 2 = 5, 如果是整数除法
: 输入的m, n都是整数,可正可负可0
: 假定输入数组是整数数组
: int FindMedian(int A[], int m, int B[], int n);

h**6
发帖数: 4160
25
O(m+n)哪还需要砍一半的数,两个指针比较大小,然后一步一步往后挪就可以了。
我有90%的概率一次写对,具体就看当天状态如何了。

【在 j**l 的大作中提到】
: 如果用O(m+n), 也就是砍去一半的数,比log(m+n)那个好写,
: 但也很容易有bug

j**l
发帖数: 2911
26
移动指针的过程本质就是砍数吧
主要是注意指针越界,特别是一个指针到了尽头后就不能移动了。

【在 h**6 的大作中提到】
: O(m+n)哪还需要砍一半的数,两个指针比较大小,然后一步一步往后挪就可以了。
: 我有90%的概率一次写对,具体就看当天状态如何了。

d****2
发帖数: 6250
27
呵呵,这个确实无解,很多人phd写code不行,有了经验会好不少,
不过单纯coding的活早晚要外包掉的。
h**k
发帖数: 3368
28
O(m+n)这个写程序不应该出错,merge two sorted arrays/lists,add two long
integers presented by strings,都是同样类型的题目。
即使是O(log(m+n))这个算法,也就难在partition那个部分,自己写过quicksort的应
该都能写出来吧
个人感觉,如果这个code题你还觉得没有把握做到一次性写对,建议再多练几个coding
题,直到编译、unit test都通过。

【在 j**l 的大作中提到】
: 移动指针的过程本质就是砍数吧
: 主要是注意指针越界,特别是一个指针到了尽头后就不能移动了。

b*****n
发帖数: 221
29
现在未给出最优算法 基本上拿不到AMZN, Facebook和GOOG的offer.

情况

【在 f*********5 的大作中提到】
: 我看板上很多人的面经,虽然并未给出最优算法也拿到offer了。
: 就像楼主说的,实际工作中很多时候并没有很复杂的算法,你的算法复杂度绝大多数情况
: 无法成为program的瓶颈。
: ###当然那种大规模数据处理,对timing要求很高的程序除外

E********a
发帖数: 124
30
我是说不得这个ID怎么这么熟悉,原来在job版发过贴
这个ID最近很火啊

【在 g****n 的大作中提到】
: 说说我做面试时的一些想法吧,希望对找工作的朋友有用。
: 在准备面试的时候,很多朋友把大部分精力放在了解题、想算法上。但在on-site面试
: 中,一个题即使你能想出来,如果写的程序效率不高,bug很多,考虑边界不全面,经
: 常涂改,写的乱,我仍然不给过。在实际工作中,很多时候一个任务不是很难(复杂的
: 算法问题可能不需要你去design),但你的代码质量很重要。如果写个50行的程序都出
: 好多bug,要反复测试很多遍才能过,这样的人工作效率会很低,我也不会take in的。
: 跟我们组其他同事交流过,也有一样的想法。

1 (共1页)
进入JobHunting版参与讨论
相关主题
How to find the size of an array? Thanks.一道 C++ 的题。
nvidia面试题C++里get array size的问题
在电脑上直接写程序O(N) sort integer array
请教一道题一个实际的排序问题
Median of Two Sorted Arraysc++ 问题
median of two sorted arrays的时间复杂度(附上了过了oj的代码)details 2nd smallest element in an array
Median of Two Sorted Arrays之MIT解法的一个问题。。从水木上看到个数组题
算法题:两列找共同元素有O(n)的算法吗?C++ Q78: about sizeof
相关话题的讨论汇总
话题: int话题: k1话题: half话题: place话题: k2