由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 感恩发面经-Amazon第一轮电面
相关主题
问个题目,找不在区间内的所有数amazon背靠背电面
贡献一个最近电面题目Facebook 第一轮电面
google youtube interview, 莫名被拒。。。。。。简短面经(amazon第一轮电面)
菜鸟向大家请教个面试题请问Google的电面是否一定会考coding?
facebook 面经A电面二
fb电面第一轮Twitter 电面
LinkedIn电面facebook面试
FB电面面经问一道面试题
相关话题的讨论汇总
话题: mid话题: int话题: assert话题: else话题: return
进入JobHunting版参与讨论
1 (共1页)
w**h
发帖数: 34
1
老印
自我介绍;
Coding: Integer数组,先升序后降序,例如:1,3,5,9,15,10,9,7,5,找出最大元素;
设计Least Recently Used Cache;
什么是abstract class;
什么是singleton pattern, 如何实现;
什么是Model-View-Controller pattern.
s******n
发帖数: 3946
2
第一题,2分法查找
第二题,DoubleLinkedList + Hashtable
p*****2
发帖数: 21240
3
第二题什么意思呀?
l*****a
发帖数: 14598
4
假定你访问过一些item,设计数据结构使得每次新读入一个item,
你可以判断是否已经访问过,已经访问过的话,更新他的访问顺序
新则插入
只能保存一定数目的item,如果到上限了
删掉访问时间距离现在最久的

【在 p*****2 的大作中提到】
: 第二题什么意思呀?
m**q
发帖数: 189
5
第一题大概是:
int find_max(int a[], int n)
{
ASSERT(n>0);
int i = 0, j = n-1;

while (i < j) {
int mid = i + (j - i + 1)/2;
if (mid == 0 || a[mid] >= a[mid-1])
i = mid;
else
j = mid-1;
}
return j;
}

【在 s******n 的大作中提到】
: 第一题,2分法查找
: 第二题,DoubleLinkedList + Hashtable

p*****2
发帖数: 21240
6

多谢。这样的话,用个数组代替双向链表应该也够用了。

【在 l*****a 的大作中提到】
: 假定你访问过一些item,设计数据结构使得每次新读入一个item,
: 你可以判断是否已经访问过,已经访问过的话,更新他的访问顺序
: 新则插入
: 只能保存一定数目的item,如果到上限了
: 删掉访问时间距离现在最久的

l*****a
发帖数: 14598
7
数组的插入删除比较麻烦吧

【在 p*****2 的大作中提到】
:
: 多谢。这样的话,用个数组代替双向链表应该也够用了。

s******n
发帖数: 3946
8
看不懂if (mid==0 || ...)什么意思,这样是不是更清楚?
int find_max(int a[], int n)
{
ASSERT(n>0);
int i = 0, j = n-1;

while (i < j-1) {
int mid = (i + j)/2;
ASSERT(mid>i && mid if (a[mid-1] < a[mid] && a[mid] i = mid;
} else if (a[mid-1] > a[mid] && a[mid]>a[mid+1]) {
j = mid;
} else if (a[mid-1] < a[mid] && a[mid]>a[mid+1]) {
return mid;
} else {
//如果a[mid]==a[mid-1], etc.则输入数据不对
return -1;
}
}
return -1;
}

【在 m**q 的大作中提到】
: 第一题大概是:
: int find_max(int a[], int n)
: {
: ASSERT(n>0);
: int i = 0, j = n-1;
:
: while (i < j) {
: int mid = i + (j - i + 1)/2;
: if (mid == 0 || a[mid] >= a[mid-1])
: i = mid;

p*****2
发帖数: 21240
9

可以simulate 双向链表。满了之后把新的element copy 到 last element, 然后改改
指针。

【在 l*****a 的大作中提到】
: 数组的插入删除比较麻烦吧
s******n
发帖数: 3946
10
有个小问题mid == 0 是多余的检查,因为0<=i 这个效率比我前面写的那个高,跳过了不少validation

【在 m**q 的大作中提到】
: 第一题大概是:
: int find_max(int a[], int n)
: {
: ASSERT(n>0);
: int i = 0, j = n-1;
:
: while (i < j) {
: int mid = i + (j - i + 1)/2;
: if (mid == 0 || a[mid] >= a[mid-1])
: i = mid;

相关主题
fb电面第一轮amazon背靠背电面
LinkedIn电面Facebook 第一轮电面
FB电面面经简短面经(amazon第一轮电面)
进入JobHunting版参与讨论
n*******w
发帖数: 687
11
还是选双向链表好。
有几个好处:
动态大小。空间紧张的时候特别需要这一点,用多少申请多少空间;
插入删除快;
配合hashtable,查找也快。

【在 p*****2 的大作中提到】
:
: 可以simulate 双向链表。满了之后把新的element copy 到 last element, 然后改改
: 指针。

p*****2
发帖数: 21240
12

看这个问题保存最近的element, 那应该空间不会太大吧?而且一般都处于满的状态吧
?(当然如果不是这样那用链表没话说)
插入删除的话,数组也可以一样是O(1)呀
用数组也要配合hashtable
数组有一个好处就是不用反复new和delete。heap 操作也是很耗时的。

【在 n*******w 的大作中提到】
: 还是选双向链表好。
: 有几个好处:
: 动态大小。空间紧张的时候特别需要这一点,用多少申请多少空间;
: 插入删除快;
: 配合hashtable,查找也快。

m**q
发帖数: 189
13
我写完了看了看也觉得是多余的,但总觉得还是写上放心点;)

【在 s******n 的大作中提到】
: 有个小问题mid == 0 是多余的检查,因为0<=i: 这个效率比我前面写的那个高,跳过了不少validation
s******n
发帖数: 3946
14
双向表不需要反复new/delete,在置换的时候把新value复制到老value所在的
LinkListNode上。

【在 p*****2 的大作中提到】
:
: 看这个问题保存最近的element, 那应该空间不会太大吧?而且一般都处于满的状态吧
: ?(当然如果不是这样那用链表没话说)
: 插入删除的话,数组也可以一样是O(1)呀
: 用数组也要配合hashtable
: 数组有一个好处就是不用反复new和delete。heap 操作也是很耗时的。

z******t
发帖数: 59
15
Coding: Integer数组,先升序后降序,例如:1,3,5,9,15,10,9,7,5,找出最大元素;
这题的详细解答见博客:
http://codercareer.blogspot.com/2011/11/no-22-turning-number-in
j********x
发帖数: 2330
16
第一题需要有严格递增与严格递减的条件
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一道面试题facebook 面经
请问可以用二分法判断一个数组是否sorted吗?fb电面第一轮
求教一个算法面试问题,被难住了LinkedIn电面
刚做了一道有些怪异的题FB电面面经
问个题目,找不在区间内的所有数amazon背靠背电面
贡献一个最近电面题目Facebook 第一轮电面
google youtube interview, 莫名被拒。。。。。。简短面经(amazon第一轮电面)
菜鸟向大家请教个面试题请问Google的电面是否一定会考coding?
相关话题的讨论汇总
话题: mid话题: int话题: assert话题: else话题: return