由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 代码写全对不容易
相关主题
这么多G的面经,我也想想 ~~google onsite归来
求教一个onsite面试题目问两道google题
Amazon Interview: algorithm for 2*LOG(N) up bound for search谁给个数组分段题二分法的总结啊?
A Simple Question on Binary Search问个越界的问题
please help 这个题 (转载)这个为什么是newton method
一个题3sum closest哪个解法最优?
Binary Tree Maximum Path SumL面经
简单题不能觉得会了就不去练习白板coding二分查找真的不容易写对
相关话题的讨论汇总
话题: num2search话题: int话题: binary话题: search话题: else
进入JobHunting版参与讨论
1 (共1页)
q****x
发帖数: 7404
1
平时都是写完后靠编译、测试找错,这习惯要改正。
p*****2
发帖数: 21240
2
唉。是这个样子得。小毛病一被抓很容易前功尽弃。
c****p
发帖数: 6474
3
写之前先都想好,最后再动手写

【在 q****x 的大作中提到】
: 平时都是写完后靠编译、测试找错,这习惯要改正。
r*******y
发帖数: 1081
4
有两次面试都考到 binary search. 第一次面的时候以为自己的代码对了,其实错了
第二次面的时候我用和第一次同样的代码,但是检查了一下,找出了bug
感觉白板功底很不扎实。

【在 q****x 的大作中提到】
: 平时都是写完后靠编译、测试找错,这习惯要改正。
o**********t
发帖数: 406
5
只要基本逻辑没问题,小小语法错,或者 edge condition 不要紧
c****p
发帖数: 6474
6
不要小瞧binary search。
binary search本身就不好写的。
而且正确无误的binary search代码好像是在binary search被提出若干年后才出现的。

【在 r*******y 的大作中提到】
: 有两次面试都考到 binary search. 第一次面的时候以为自己的代码对了,其实错了
: 第二次面的时候我用和第一次同样的代码,但是检查了一下,找出了bug
: 感觉白板功底很不扎实。

c****p
发帖数: 6474
7
我觉得edge condition其实是重点。。

【在 o**********t 的大作中提到】
: 只要基本逻辑没问题,小小语法错,或者 edge condition 不要紧
y*******g
发帖数: 6599
8
binary search很难写对,而且是经典算法,适合反复体验反复练习,很多题目都能用
binary search based的方法来解
参考
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=

【在 r*******y 的大作中提到】
: 有两次面试都考到 binary search. 第一次面的时候以为自己的代码对了,其实错了
: 第二次面的时候我用和第一次同样的代码,但是检查了一下,找出了bug
: 感觉白板功底很不扎实。

a********m
发帖数: 15480
9
不要这么想。

【在 o**********t 的大作中提到】
: 只要基本逻辑没问题,小小语法错,或者 edge condition 不要紧
r*******y
发帖数: 1081
10
我第一次面试的时候这么写的
int binary_search(int *a, int size, int num2search){
int i = 0, j = size -1, m = (i + j) / 2;
while(i <= j)
if(a[m] == num2search) return m;
else if(a[m] < num2search){i = m, m = (i + j) / 2 ;}
else{j = m, m = (i + j) / 2;}
return -1;
}
第二次面试的时候,我用 a[] = {1, 2, 4, 5}, num2search = 4 来检验
发现代码会死循环,然后 fix 了
int binary_search(int *a, int size, int num2search){
int i = 0, j = size -1, m = (i + j) / 2;
while(i <= j)
if(a[m] == num2search) return m;
else if(a[m] < num2search){i = m + 1, m = (i + j) / 2 ;}
else{j = m - 1, m = (i + j) / 2;}
return -1;
}

【在 y*******g 的大作中提到】
: binary search很难写对,而且是经典算法,适合反复体验反复练习,很多题目都能用
: binary search based的方法来解
: 参考
: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=

相关主题
一个题google onsite归来
Binary Tree Maximum Path Sum问两道google题
简单题不能觉得会了就不去练习白板coding谁给个数组分段题二分法的总结啊?
进入JobHunting版参与讨论
y*******g
发帖数: 6599
11
binary search尽量熟悉好,有时候回要求返回lower_bound或者upper_bound, code会
有一些小tricky的地方

【在 r*******y 的大作中提到】
: 我第一次面试的时候这么写的
: int binary_search(int *a, int size, int num2search){
: int i = 0, j = size -1, m = (i + j) / 2;
: while(i <= j)
: if(a[m] == num2search) return m;
: else if(a[m] < num2search){i = m, m = (i + j) / 2 ;}
: else{j = m, m = (i + j) / 2;}
: return -1;
: }
: 第二次面试的时候,我用 a[] = {1, 2, 4, 5}, num2search = 4 来检验

o**********t
发帖数: 406
12
白班代码,只是最终 offer 必要条件,不是充分条件。只占 60%左右
P**********c
发帖数: 3417
13
edge condition感觉是考察重点。错了很严重。

【在 o**********t 的大作中提到】
: 只要基本逻辑没问题,小小语法错,或者 edge condition 不要紧
p*****2
发帖数: 21240
14

好像电面还好。我有这些错误还是给了onsite。onsite要求就高了。

【在 P**********c 的大作中提到】
: edge condition感觉是考察重点。错了很严重。
p*****2
发帖数: 21240
15

我phone screen L的时候也犯了这个错误,还以为没戏了。但是最后还是给了onsite。

【在 r*******y 的大作中提到】
: 我第一次面试的时候这么写的
: int binary_search(int *a, int size, int num2search){
: int i = 0, j = size -1, m = (i + j) / 2;
: while(i <= j)
: if(a[m] == num2search) return m;
: else if(a[m] < num2search){i = m, m = (i + j) / 2 ;}
: else{j = m, m = (i + j) / 2;}
: return -1;
: }
: 第二次面试的时候,我用 a[] = {1, 2, 4, 5}, num2search = 4 来检验

n*******w
发帖数: 687
16
嗯,bs变种挺多的。
有重复key的时候返回lower bound或者upper bound,
key不存在的时候返回比key小的最大值或者比key大的最小值等等。。。
导致循环条件不一样,比较条件也不一样,最后可能还得多比较一次。但是每趟的过程差不多。

【在 y*******g 的大作中提到】
: binary search尽量熟悉好,有时候回要求返回lower_bound或者upper_bound, code会
: 有一些小tricky的地方

q****x
发帖数: 7404
17

这个就是upper bound。
程差不多。

【在 n*******w 的大作中提到】
: 嗯,bs变种挺多的。
: 有重复key的时候返回lower bound或者upper bound,
: key不存在的时候返回比key小的最大值或者比key大的最小值等等。。。
: 导致循环条件不一样,比较条件也不一样,最后可能还得多比较一次。但是每趟的过程差不多。

J*********n
发帖数: 370
18

其实细想一下你会发现这两者其实是一样的,同个程序就能handle这两种情况
程差不多。

【在 n*******w 的大作中提到】
: 嗯,bs变种挺多的。
: 有重复key的时候返回lower bound或者upper bound,
: key不存在的时候返回比key小的最大值或者比key大的最小值等等。。。
: 导致循环条件不一样,比较条件也不一样,最后可能还得多比较一次。但是每趟的过程差不多。

e*********l
发帖数: 136
19
嗯,这个有时候会比较烦

程差不多。

【在 n*******w 的大作中提到】
: 嗯,bs变种挺多的。
: 有重复key的时候返回lower bound或者upper bound,
: key不存在的时候返回比key小的最大值或者比key大的最小值等等。。。
: 导致循环条件不一样,比较条件也不一样,最后可能还得多比较一次。但是每趟的过程差不多。

c**s
发帖数: 528
20
写好后 测试有个缺点是 可能有些逻辑错误找不出

【在 q****x 的大作中提到】
: 平时都是写完后靠编译、测试找错,这习惯要改正。
r****t
发帖数: 10904
21
我还是另起一帖好了
1 (共1页)
进入JobHunting版参与讨论
相关主题
二分查找真的不容易写对please help 这个题 (转载)
不明白“整数流的中位数”为啥用max heap和min heap比binary sort 好一个题
昨天面试了一个工作了6年的Binary Tree Maximum Path Sum
完全靠刷题和GPA拿到offer,进公司能赶上吗简单题不能觉得会了就不去练习白板coding
这么多G的面经,我也想想 ~~google onsite归来
求教一个onsite面试题目问两道google题
Amazon Interview: algorithm for 2*LOG(N) up bound for search谁给个数组分段题二分法的总结啊?
A Simple Question on Binary Search问个越界的问题
相关话题的讨论汇总
话题: num2search话题: int话题: binary话题: search话题: else