avatar
Amazon电面面经# JobHunting - 待字闺中
q*8
1
1. c++, java对比。(因为说语言时候说都可以)
2. coding: 一个interface叫foo,有一个number_pool, 里面number的value范围从0-
MAXINT, 这些number有
available和unavailable两种状态, 方法1 int check_out(){}: 返回number_pool里
的第一个available的number。方法2
void check_in(int i){}: 把number_pool里的相应number设为available。(number_
pool的数据结构自定)。实现这个
interface。
3. follow up 一些java的问题: java MAXINT是多少。。。之类的,记不得了。
coding题答的不好,大家有什么方法?
avatar
c*2
2
2. bit vector?
avatar
q*8
3
如果全开,内存太大。

【在 c***2 的大作中提到】
: 2. bit vector?
avatar
f*g
4
如果是32-bit的machine话, bitmap的话,需要(2^32 - 1)/2^5 = 2^27
如果available不多的话(相对不available的数),可以用hash table只存available
的数.
lz怎么答得阿:D

【在 q******8 的大作中提到】
: 如果全开,内存太大。
avatar
J*i
5
他没有别的什么提示么?就是还有什么别的一些条件或者关于这些available数的描述
avatar
H*S
6
byte[] number_pool = new byte[Integer.MAX_VALUE / 8] (takes up to 1GB memory)
set availability: number_pool[n / 8] |= 1 << (n % 8);
judge availability: number_pool[n / 8] & 1 << (n % 8) == 1;
avatar
S*n
7
你好,问一下Amazon电面的时候是在shared doc 上写code,还是自己
在纸上写然后念给对方听?谢谢

number的value范围从0-
{}: 返回number_pool里
为available。(number_
的,记不得了。

【在 q******8 的大作中提到】
: 1. c++, java对比。(因为说语言时候说都可以)
: 2. coding: 一个interface叫foo,有一个number_pool, 里面number的value范围从0-
: MAXINT, 这些number有
: available和unavailable两种状态, 方法1 int check_out(){}: 返回number_pool里
: 的第一个available的number。方法2
: void check_in(int i){}: 把number_pool里的相应number设为available。(number_
: pool的数据结构自定)。实现这个
: interface。
: 3. follow up 一些java的问题: java MAXINT是多少。。。之类的,记不得了。
: coding题答的不好,大家有什么方法?

avatar
S*n
8
int check_out返回第一个available的number,这第一个是指第一个
check_in的还是指最小的?

number的value范围从0-
{}: 返回number_pool里
为available。(number_
的,记不得了。

【在 q******8 的大作中提到】
: 1. c++, java对比。(因为说语言时候说都可以)
: 2. coding: 一个interface叫foo,有一个number_pool, 里面number的value范围从0-
: MAXINT, 这些number有
: available和unavailable两种状态, 方法1 int check_out(){}: 返回number_pool里
: 的第一个available的number。方法2
: void check_in(int i){}: 把number_pool里的相应number设为available。(number_
: pool的数据结构自定)。实现这个
: interface。
: 3. follow up 一些java的问题: java MAXINT是多少。。。之类的,记不得了。
: coding题答的不好,大家有什么方法?

avatar
c*o
9
My 2 cents for question 2:
number_pool keeps a integer and a min-heap;
initial: integer = 0; min_heap is empty;
check_out: if min-heap is empty, return the integer; interger ++;
else return the min value in the min heap;
check_in: add the value into the min_heap

number_

【在 q******8 的大作中提到】
: 1. c++, java对比。(因为说语言时候说都可以)
: 2. coding: 一个interface叫foo,有一个number_pool, 里面number的value范围从0-
: MAXINT, 这些number有
: available和unavailable两种状态, 方法1 int check_out(){}: 返回number_pool里
: 的第一个available的number。方法2
: void check_in(int i){}: 把number_pool里的相应number设为available。(number_
: pool的数据结构自定)。实现这个
: interface。
: 3. follow up 一些java的问题: java MAXINT是多少。。。之类的,记不得了。
: coding题答的不好,大家有什么方法?

avatar
j*y
10
我那次是直接念。

【在 S******n 的大作中提到】
: 你好,问一下Amazon电面的时候是在shared doc 上写code,还是自己
: 在纸上写然后念给对方听?谢谢
:
: number的value范围从0-
: {}: 返回number_pool里
: 为available。(number_
: 的,记不得了。

avatar
q*8
11
如果内存没那么大呢?

memory)

【在 H****S 的大作中提到】
: byte[] number_pool = new byte[Integer.MAX_VALUE / 8] (takes up to 1GB memory)
: set availability: number_pool[n / 8] |= 1 << (n % 8);
: judge availability: number_pool[n / 8] & 1 << (n % 8) == 1;

avatar
l*3
12
那如果User先checkout所有的数,然后再checkin所有的数,你的minheap就会用光所有
的memory。
你的想法可以,不过我觉得要限制一下min heap的size。

【在 c****o 的大作中提到】
: My 2 cents for question 2:
: number_pool keeps a integer and a min-heap;
: initial: integer = 0; min_heap is empty;
: check_out: if min-heap is empty, return the integer; interger ++;
: else return the min value in the min heap;
: check_in: add the value into the min_heap
:
: number_

avatar
q*8
13

memory)
果然被拒了,这道题bitmap的实现很简单,但是往深里挖觉得还真是挺有的琢磨的。我
是用的bitmap,然后就被问内存有
限的问题,说了file之类的,但是好像对方不满意。

【在 H****S 的大作中提到】
: byte[] number_pool = new byte[Integer.MAX_VALUE / 8] (takes up to 1GB memory)
: set availability: number_pool[n / 8] |= 1 << (n % 8);
: judge availability: number_pool[n / 8] & 1 << (n % 8) == 1;

avatar
S*n
14
是的,如果用bitmap,看似省了不少空间,但要维持一个0到MAX_INT的
bitmap还是需要不少空间的,如果同时available 的数不是特别多的话,
我觉得可以用hash_map存储available的数

的琢磨的。我

【在 q******8 的大作中提到】
:
: memory)
: 果然被拒了,这道题bitmap的实现很简单,但是往深里挖觉得还真是挺有的琢磨的。我
: 是用的bitmap,然后就被问内存有
: 限的问题,说了file之类的,但是好像对方不满意。

avatar
S*n
15
如果check_in的数已经available了再加进去就重复了

interger ++;

【在 c****o 的大作中提到】
: My 2 cents for question 2:
: number_pool keeps a integer and a min-heap;
: initial: integer = 0; min_heap is empty;
: check_out: if min-heap is empty, return the integer; interger ++;
: else return the min value in the min heap;
: check_in: add the value into the min_heap
:
: number_

avatar
H*S
16
这个number_pool是一个类似generator的东西吗?且不说function怎么实现,对于这个
number_pool的数据结构如何表达很好奇。

【在 q******8 的大作中提到】
:
: memory)
: 果然被拒了,这道题bitmap的实现很简单,但是往深里挖觉得还真是挺有的琢磨的。我
: 是用的bitmap,然后就被问内存有
: 限的问题,说了file之类的,但是好像对方不满意。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。