Redian新闻
>
请问BOA cash prepaid visa card要收fee吗?
avatar
请问BOA cash prepaid visa card要收fee吗?# PennySaver - 省钱一族
c*y
1
1. 大数乘法
给定两个非常大的数,写出一个函数返回它们的乘积。可以自己定义需要用到的数据结
构来表示每个数。我用了vector。
2. 系统设计的问题。
给定一个数据中心,如何收集statistics在给定的时间范围(t0,t1)。
这是系统设计题,没啥代表性。
3. 给定一个点,找出一百万个点中距离这个点最近的k个点。
用heap来存当前最近的k个点,然后scan这一百万个点一遍。
4. 给定一个函数fetch10k(),要求实现另外一个函数fetch()。这个题的说明比较复杂
,最后没有写完。具体说明如下。
fetch10k()是给定的,signature如下。
int fetch10k(char *buffer)
这个函数干的事情是从底层读出数据,写到传入的buffer中。这个buffer是一个默认
10k bytes大小的空buffer。返回类型int,返回写入后buffer中数据的size。
注意返回的数据大小和底层的数据大小有关。如果底层数据size是0,那么返回也是0,
因为buffer里什么也没有写。
如果底层数据是小于10k,例如5k,那么返回值是5k,因为只有5k的数据,并且全部写
到10k的空buffer中去了。
如果底层数据是大于或者等于10k,那么返回值是10k。因为10k的数据被写入到buffer
中。注意每次在call这个函数的时候,底层数据的指针也被移动,使得连续的fetch10k
的call读出连续的底层数据。
要求用fetch10k实现的函数fetch(),signature如下。
int fetch(int size, char *buffer)
这里size是指定希望读出的数据大小,buffer是用来存放读出的数据的(假设足够大)
。返回值int是实际从底层数据读出的数据大小。
给几个例子说明可能返回的情况。
(1)size = 8k,但是底层数据只有2k,那么返回值是2k。
(2)size = 8k,底层数据有20k,那么返回值是8k。
(3)size = 8k,底层数据是0,那么返回值是0。
另外一个很重要的要求是能够用这个函数连续从地底读出一段数据。下面是个例子。
底层数据一共有24k,要求能够用三个fetch(8k,buffer)把这个24k的数据读出来。在这
三次fetch的call中,每次读出8k的数据,放到指定的位置(通过buffer)。对于这个
要求,需要特别考虑在一次fetch10k的call中,如何把剩余的2k的数据保留下来,并且
提供给下一次的fetch的call。
好吧,刚开始没有考虑到最后的那个要求,给了一个解法。后他指出我的解法不满足最
后的那个条件。我就改了code,没改完时间就到了。
这个题模糊的地方太多了。
avatar
f*p
2
算是cash advance对吧?手续费多少呢?从来没有这么弄过。
请高手指教。谢谢。
avatar
h*a
3
多谢。能详细说说2么?是说只处理timestamp在一定范围内的数据?
3直接这样做应该没错,但现实中的优化可能是要对空间进行一下划分。这个看面试人
的要求了。

【在 c**y 的大作中提到】
: 1. 大数乘法
: 给定两个非常大的数,写出一个函数返回它们的乘积。可以自己定义需要用到的数据结
: 构来表示每个数。我用了vector。
: 2. 系统设计的问题。
: 给定一个数据中心,如何收集statistics在给定的时间范围(t0,t1)。
: 这是系统设计题,没啥代表性。
: 3. 给定一个点,找出一百万个点中距离这个点最近的k个点。
: 用heap来存当前最近的k个点,然后scan这一百万个点一遍。
: 4. 给定一个函数fetch10k(),要求实现另外一个函数fetch()。这个题的说明比较复杂
: ,最后没有写完。具体说明如下。

avatar
c*a
4
免费, 但现在好象小面额的不能CASH了.

【在 f*******p 的大作中提到】
: 算是cash advance对吧?手续费多少呢?从来没有这么弄过。
: 请高手指教。谢谢。

avatar
r*e
5
第三题我昨天也被问了,总体感觉比我的要难啊。
第一题为了以防万一做了好几遍,onsite的前一天还又看了一遍,就差背code了,
因为听说他们家爱问这个。不过没遇上。

【在 c**y 的大作中提到】
: 1. 大数乘法
: 给定两个非常大的数,写出一个函数返回它们的乘积。可以自己定义需要用到的数据结
: 构来表示每个数。我用了vector。
: 2. 系统设计的问题。
: 给定一个数据中心,如何收集statistics在给定的时间范围(t0,t1)。
: 这是系统设计题,没啥代表性。
: 3. 给定一个点,找出一百万个点中距离这个点最近的k个点。
: 用heap来存当前最近的k个点,然后scan这一百万个点一遍。
: 4. 给定一个函数fetch10k(),要求实现另外一个函数fetch()。这个题的说明比较复杂
: ,最后没有写完。具体说明如下。

avatar
i*4
6
free, 不过要求面额50以上
avatar
c*y
7
因为是系统设计题,不要求写code,谈谈思路就行了。
我的proposal是不同时间段的data,用不同的gradunality存。比如过去24小时的data
,每分钟存一次。过去一个星期的data,每天存一次。过去每个月的data,每个星期存
一次。。。。
如果要的t0和t1是过去24小时内的,可以给出。如果超过,只能给出更粗线条的data了
。比如可以给出当日上午10点和11点间的data,但是没法给出去年同一日期上午10点和
11点间的data。

【在 h*****a 的大作中提到】
: 多谢。能详细说说2么?是说只处理timestamp在一定范围内的数据?
: 3直接这样做应该没错,但现实中的优化可能是要对空间进行一下划分。这个看面试人
: 的要求了。

avatar
f*p
8
谢谢楼上两位。
呵呵,我这个正好是两张$100的。这就去BOA存去啦。
avatar
c*y
9
最后一题是我目前经历过最难的题。遗憾面试的人不是老中。如果是的话,估计就不会
有最后的那个要求了。
也可能因为水平有限。觉得就会挂着这个题上面。

【在 r*****e 的大作中提到】
: 第三题我昨天也被问了,总体感觉比我的要难啊。
: 第一题为了以防万一做了好几遍,onsite的前一天还又看了一遍,就差背code了,
: 因为听说他们家爱问这个。不过没遇上。

avatar
h*a
10
其实这个题也算是个中频题,以前G常问。

【在 c**y 的大作中提到】
: 最后一题是我目前经历过最难的题。遗憾面试的人不是老中。如果是的话,估计就不会
: 有最后的那个要求了。
: 也可能因为水平有限。觉得就会挂着这个题上面。

avatar
r*e
11
看你的题目描述就快累死了,这种题可能其实不难,但是理解起来就要花
好长时间,其实挺无聊的。碰上了也只能说运气不好了。

【在 c**y 的大作中提到】
: 最后一题是我目前经历过最难的题。遗憾面试的人不是老中。如果是的话,估计就不会
: 有最后的那个要求了。
: 也可能因为水平有限。觉得就会挂着这个题上面。

avatar
r*e
12
夫家是F?
最后一题就是著名的read1024()啊,G以前经常问,版上讨论过多次
这题很完整写出来没有错的都很不容易

buffer
fetch10k

【在 c**y 的大作中提到】
: 1. 大数乘法
: 给定两个非常大的数,写出一个函数返回它们的乘积。可以自己定义需要用到的数据结
: 构来表示每个数。我用了vector。
: 2. 系统设计的问题。
: 给定一个数据中心,如何收集statistics在给定的时间范围(t0,t1)。
: 这是系统设计题,没啥代表性。
: 3. 给定一个点,找出一百万个点中距离这个点最近的k个点。
: 用heap来存当前最近的k个点,然后scan这一百万个点一遍。
: 4. 给定一个函数fetch10k(),要求实现另外一个函数fetch()。这个题的说明比较复杂
: ,最后没有写完。具体说明如下。

avatar
s*s
13
有read1024()的source code学习一下吗?

【在 r*******e 的大作中提到】
: 夫家是F?
: 最后一题就是著名的read1024()啊,G以前经常问,版上讨论过多次
: 这题很完整写出来没有错的都很不容易
:
: buffer
: fetch10k

avatar
t*q
14
Am I missing anything?
直接写不就好了,没觉得有啥tricky的地方啊

【在 r*******e 的大作中提到】
: 夫家是F?
: 最后一题就是著名的read1024()啊,G以前经常问,版上讨论过多次
: 这题很完整写出来没有错的都很不容易
:
: buffer
: fetch10k

avatar
r*e
15
这题有两种问法,给定read1024()
一个是让实现readline(),在这里有过讨论:
http://www.mitbbs.com/article_t/JobHunting/32101029.html
另一个是实现read(int size)读任意大小,好像更麻烦一些

【在 s*********s 的大作中提到】
: 有read1024()的source code学习一下吗?
avatar
g*s
16
第三题这种要用heap的一般可以直接调用priority_queue么?
还是要自己写个queue的实现?
avatar
r*e
17
的确不难,不过按照另外一个贴里说标准是每小时做三道
你可以写一下,看15分钟能不能做到bug free

【在 t*q 的大作中提到】
: Am I missing anything?
: 直接写不就好了,没觉得有啥tricky的地方啊

avatar
c*y
18
看来还是复习的不够。。。
avatar
a*n
19
这么难啊。比我2个月前面的时候感觉难了一个数量级。我有一道很简单的设计题没有
答出来。
avatar
h*a
20
呵呵,看来我随口一说又是躺着中枪了,怎么每小时3道成标准了?
说实话,面G的话,还真是做得快就多给你一道题,做的越多最后就越impressive,就
越容易拿offer. 有时候你虽然做出来了正确solution,但同一个面试官在面试别人的
时候另外的人用的时间更少,这当然会让人觉得你水平不够啊。

【在 r*******e 的大作中提到】
: 的确不难,不过按照另外一个贴里说标准是每小时做三道
: 你可以写一下,看15分钟能不能做到bug free

avatar
a*n
21
最后一题,,用一个静态变量存当前的指针不就行料吗 ??? 第2题有现成的实现,,看一下
OPENTSDB..
avatar
r*h
22
最后一题我的想法是,根据fetch10k的返回值是否是10k,以及当前size是否大于
fetch10k的返回值分四种情况讨论。每次用fetch10k取出数据放到临时buf里,然后再
根据情况从临时buf拷贝相应的长度到总buf里,并记录从开始读取为止已经读的总size。
不过那个额外条件我不是很理解怎么做:按理说静态的文件指针应该是包含在fetch10k
里面不能被访问到,也就是说不能通过seek或者回退指针的方法来暂存已经被读出的数
据。这时候应该是需要另外一个buf来hold住被读出但是没有被使用过的部分,或者当
前buf完全存下10k数据,但是要有一个额外的变量来指明当前buf的实际大小这样下次
call的时候可以先检查当前buf可用的部分。
不过根据函数的signature不知道如何把这些额外的信息返回来供下次使用,难道是要
用全局变量或者静态变量吗?
avatar
r*e
23
嗯,需要一个全局或者静态变量

size。
fetch10k

【在 r**h 的大作中提到】
: 最后一题我的想法是,根据fetch10k的返回值是否是10k,以及当前size是否大于
: fetch10k的返回值分四种情况讨论。每次用fetch10k取出数据放到临时buf里,然后再
: 根据情况从临时buf拷贝相应的长度到总buf里,并记录从开始读取为止已经读的总size。
: 不过那个额外条件我不是很理解怎么做:按理说静态的文件指针应该是包含在fetch10k
: 里面不能被访问到,也就是说不能通过seek或者回退指针的方法来暂存已经被读出的数
: 据。这时候应该是需要另外一个buf来hold住被读出但是没有被使用过的部分,或者当
: 前buf完全存下10k数据,但是要有一个额外的变量来指明当前buf的实际大小这样下次
: call的时候可以先检查当前buf可用的部分。
: 不过根据函数的signature不知道如何把这些额外的信息返回来供下次使用,难道是要
: 用全局变量或者静态变量吗?

avatar
g*G
24
同问,如果用Priority queue的话,是不是得写个wrapper,把超出大小的就边扫边丢
掉了

【在 g*******s 的大作中提到】
: 第三题这种要用heap的一般可以直接调用priority_queue么?
: 还是要自己写个queue的实现?

avatar
s*x
25
mark
avatar
m*e
26
knn is my most favorite interview question to interviewee. But if you do it
in such a brute-force way, you are dead. :)

【在 c**y 的大作中提到】
: 看来还是复习的不够。。。
avatar
c*m
27
最后一题写了个,大家看看有啥bug没
#define MAX_BUFFER_SIZE 10 * 1024
extern int fetch10k(char *buffer);
char temp[MAX_BUFFER_SIZE + 1];
int fetch(int size, char *buffer)
{
assert(size > 0 && buffer != NULL);
static int currentPos = 0;

string s;
int currSize = 0;
static int len = 0;

while (1)
{
if (currentPos != len)
{
int i;

for (i = currentPos; i < len; i++)
{
s += temp[i];
if (++currSize == size)
{
currentPos = i + 1;
break;
}
}

if (currSize == size)
break;
else
currentPos = len;
}
else
{
len = fetch10k(temp);
currentPos = 0;
if (len == 0)
break;
}
}

if (s.size() == 0)
return 0;
else
{
strcpy(buffer, s.c_str());
return s.size();
}
}
avatar
w*j
28
请问楼主可以透露一下是在哪里面的吗?另外是general hire,还是一个组?
谢谢....
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。