m**********8 发帖数: 39 | 1 单家庭有单房出租(120 sqft有衣櫥), 只适合单人,房租每月是$750。
租金包水電費,暖氣費和网路,有停车位、新裝修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火車站, Metro West公
交车 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小時CVS,
Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐廳,很適合在
Leonard Morse Hospital, Mathworks, Sanofi/Genzyme, MEDITECH, IDG, TJX
Companies, Cognex, Biogen Idec, S2 Security, Newton-Wellesley Hospital 及位
于Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或讀書的人租住。
随时入住, 可长或短租,只须头... 阅读全帖 |
|
m**********8 发帖数: 39 | 2 单家庭有一单房出租(120 sqft有衣櫥), 只适合单人,房租每月是$750。
租金包水電費,暖氣費和网路,有停车位、新裝修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火車及Metro West公交
车站, 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小時CVS
, Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐廳,很適合在
Leonard Morse Hospital, Newton-Wellesley Hospital, Mathworks, Sanofi/Genzyme
, MEDITECH, IDG, TJX Companies, Cognex, Biogen Idec, S2 Security, 及位于
Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或讀書的人租住。
随时入住, 可长或短租... 阅读全帖 |
|
m**********8 发帖数: 39 | 3 单家庭有一单房出租(120 sqft有衣櫥), 只适合单人,房租每月是$750。
租金包水電費,暖氣費和网路,有停车位、新裝修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火車及Metro West公交
车站, 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小時CVS
, Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐廳,很適合在
Leonard Morse Hospital, Newton-Wellesley Hospital, Mathworks, Sanofi/Genzyme
, MEDITECH, IDG, TJX Companies, Cognex, Biogen Idec, S2 Security, 及位于
Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或讀書的人租住。
随时入住, 可长或短租... 阅读全帖 |
|
m**********8 发帖数: 39 | 4 单家庭有一单房出租(120 sqft有衣櫥), 只适合单人,房租每月是$750。
租金包水電費,暖氣費和网路,有停车位、新裝修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火車及Metro West公交
车站, 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小時CVS
, Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐廳,很適合在
Leonard Morse Hospital, Newton-Wellesley Hospital, Mathworks, Sanofi/Genzyme
, MEDITECH, IDG, TJX Companies, Cognex, Biogen Idec, S2 Security, 及位于
Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或讀書的人租住。
一月份入住,入住, 可... 阅读全帖 |
|
m**********8 发帖数: 39 | 5 单家庭有一单房出租(120 sqft有衣櫥), 只适合单人,房租每月是$750。
租金包水電費,暖氣費和网路,有停车位、新裝修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火車及Metro West公交
车站, 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小時CVS
, Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐廳,很適合在
Leonard Morse Hospital, Newton-Wellesley Hospital, Mathworks, Sanofi/Genzyme
, MEDITECH, IDG, TJX Companies, Cognex, Biogen Idec, S2 Security, 及位于
Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或讀書的人租住。
一月份入住, 可长或短... 阅读全帖 |
|
m**********8 发帖数: 39 | 6 单家庭有一单间出租(120 sqft有衣橱), 只适合少炊单身人士,房租每月是$775。
租金包水电费,暖气费和网路,有停车位丶新装修。
房子位于Union St, Natick MA 01760,交通便利, 可以步行到火车及Metro West公交
车站, 或开车连接到I90 Mass Pike, Rt 9,Rt135, Rt27, I95/128, 附近有24小时CVS
, Stop n Shop, Natick Mall, IMAX电影院 , Shoppers World和许多餐厅,很适合在
Leonard Morse Hospital, Newton-Wellesley Hospital, Mathworks, Sanofi/Genzyme
, MEDITECH, IDG, TJX Companies, Cognex, Biogen Idec, S2 Security, 及位于
Waltham 一带的公司, Wellesley College , Babson College, Regis College和
Brandeis College等工作或读书的人租住。
十一月份入住,... 阅读全帖 |
|
a**e 发帖数: 5794 | 7 这样是正的,但是去掉头尾两行,结果就是负的了。
没办法告诉xirr这是short。 |
|
H*M 发帖数: 1268 | 8 Given a value and a binary search tree.
Print all the paths(if there exists more than one) which sum up to that valu
e. It can be any path in the tree. It doesn't have to be from the root.
我理解是这个path可以是其中任意一截,不用包括头尾 |
|
m*****f 发帖数: 1243 | 9 假设cell为x1,x2,x3,x4...
, ...
, ...
...
把这些pair基于第二个element排序, 每个整数出现了两次, 且在结果中相邻, 遍历结
果就可知哪些cell头尾相连
O(nlogn) time, O(n) space |
|
d*******8 发帖数: 785 | 10 继上周Amazon Onsite被一个三哥灭了
这次电面又被国人灭了。
具体过程是这样
前25分钟聊Research...
(真的没什么好聊,我都想早点结束留时间给后面的算法题,但是他一直要问:( )
接下来二叉树遍历编程题,
inorder的非递归。
几个Typo,然后被说某个判定条件多余了,又按他的意思改了下。
最后20分钟讲个算法题目。
给一个M个数字的从1到N的整数数组,找出一个K个大小的子集,这个子集
每个数pair的Distance,使得这个min distance 最大化。
题目解释了半天..就剩10分想了。。
先Sort 数组,取 头尾做最初两个元素,然后K-2中做DP,但是DP我方向想错了
用f(k-1) 到f (k),虽然知道也不对,但是一下子卡住了。
这位国人大哥也不给我提示,到了最后结束了跟我讲 从左到右 扫描做DP,
挂了电话后我就想出来了
大概是
F(k, head, end) = Max ( for ((i in [head, end-k+1]),j in [i+k-1,end]) Min(
distanc(head,i),distance(j,end) |
|
g********d 发帖数: 43 | 11 如果数组有序,用头尾两个指针, 计算这两个指针所指的数之和P,根据P和K的关系决定
哪个指针移动,直到这两个指针相遇. O(n).
或者对每一个元素i, 用binary search在a[i+1 .. n]子数组搜索K-a[i],O(n*logn)
如果无序,先排序,再用上述算法。 不知道到有没有更快的算法。 |
|
s*********g 发帖数: 153 | 12 仔细想了好久,好像是可行的。
比如说,有如下简单的例子:
case1:1,2,3,4,5 -1,-2
case2:1,2,3,4,-1,-2,-3
case3:1,2,-1,-2,-3,-4
正数,负数 分明,你找了了分界线,现在开始不断的swap,可以在时间复杂度O(n)和
空间复杂度O(1),完成。
对于case1 的过程 如下:
initial array:1,2,3,4,5 ,-1,-2
step:
(1) 1,2,3,-1,-2,4,5
(2) 1,-1,-2,2,3,4,5
(3) -1,1,-2,2,3,4,5
(4) -1,-2,1,2,3,4,5
伪代码 我就省了,的确可以写出来,逻辑太麻烦了。
所以说,关键在于 把已知数组 partition 一下, 再不断的进行上述过程:
比如说:
initial array:1,2,-1,3,4,5 -2,6,7,-3,8,-4,9
从后往前找进行partition 过程
step1 第一次partition (以||表示头尾)
1,2,-1,3,4,5 -2,6,7,-3,||8,-4||,9
进行篇头的swap过程 结果: |
|
f****4 发帖数: 1359 | 13 化简成求连续子序列的最大和的话,只能求出 0 ~ n 的连续子序列 例如5 ~ n-3
但如果序列 n-2,n-1,n,0,1,...,n-3 本身就是最大和的连续子序列,你的算法就找不
到n-2这个值。。。
如果对所有可能的序列开始点 i (0~n)求一次的话,复杂度还是 O(n^2)
记得类似有个题目是求循环序列(序列头尾相连)的最大和的连续子序列
谁来解一下? |
|
l****q 发帖数: 177 | 14 首先你的list不断后移,最后全返回了,你再走到头?
其次,当一个点有左右儿子的时候,貌似你的右儿子自己不是NULL的时候就没有被
append上去啊
rtn_list = BSTtoDLL(node->right, node);
if(rtn_list == NULL)
{
return &node;
}
else
{
return rtn_list;
}
写代码一般是从拙入巧的,慢慢改进,一下子写很巧妙的代码会很容易错的
这里有现成的代码
http://cslibrary.stanford.edu/109/TreeListRecursion.html
因为double linked list操作有对称性,它是把tree转成了circular的double list
最后要把头尾break才是你要的 |
|
h**6 发帖数: 4160 | 15 我的方法是先找到第一个包含所有字符的子字符串,用两个指针分别指向子串头尾,一
个数组统计各字符出现次数。此后首先考虑移动左指针。
1.左指针移动,每次右移更新子串最短长度。
1)若左指针指向字符不是B串中字符,左指针右移;
2)若左指针指向字符是B串中字符,且在子串中出现次数不止一次,左指针右移并减去
一次出现次数;
3)若左指针指向字符是B串中字符,且只在子串中出现一次,左指针不动,换右指针。
2.右指针移动。
1)若右指针指向字符不是B串中字符,右指针右移;
2)若右指针指向字符是B串中字符,且不是左指针指向的字符,右指针右移并增加一次
出现次数;
3)若右指针指向字符是B串中字符,且是左指针指向的字符,右指针右移并增加一次出
现次数,换左指针。 |
|
j*****g 发帖数: 223 | 16 想出来个新方法,至少看上去挺简单的,不用recursion, 动态规划,suffix tree, 或
脑筋急转弯的算法。
case 1。看看一个普通的pattern string (not edge case):
*str1*str2*str3*
where 1) strN is basically a-z plus '.' 2) assume we've already collapsed
multiple consecutive *'s into a single *.
在这种情况下, 去匹配target string就是一个贪心算法:
start = target;
foreach (strN)
{
new_start = strstr(target + start, strN);
if (new_start == NULL) return false;
start = new_start + len(strN) + 1;
}
return true;
case 2。再看看其他pattern string的情况:
如果pattern string is like... 阅读全帖 |
|
D********g 发帖数: 650 | 17 对,这些edge case要找全确实不容易。
我觉得如果pattern是在string的头尾,则特殊处理一下,问题也不大。 |
|
A*********r 发帖数: 564 | 18 嗯,其实就是需要一个数据结构,支持从头删除,从尾插入和删除,最大值永远都是在
头上。。
一个有头尾指针的单链表就可以了。。
vector |
|
t*****j 发帖数: 1105 | 19 有头尾指针的单链表,但是插入还是要O(k)吧?不太明白,飞牛mm能不能讲解下? |
|
d********w 发帖数: 363 | 20 简单型:sort 0, 1数组, O(n)时间,可以使用头尾两个pointer,
i = 0;
j = n-1;
while( i < j){
while( array[i] == 0 && i < j )
i++;
while( array[j] == 1 && j > i )
j--;
if ( i < j )
swap( a[i], a[j] );
}
如果是排序0,1,2数组,就是dutch flag问题, http://en.wikipedia.org/wiki/Dutch_national_flag_problem,跟quicksort中的partition类似
void threeWayPartition(int data[], int size, int low, int high) {
int p = -1;
int q = size;
for (int i = 0; i < q;) {
if (data[i] < low) {
swap(data[i], data[++p]);
++i;... 阅读全帖 |
|
f*********i 发帖数: 197 | 21 sorry,头昏了,是DP。
queue的那道题目就是implement enqueue 和 dequeue,不是priority queue。
tricky在判断异常,比如size=0的时候dequeue抛异常和size full的时候抛提示,还
有头尾结点的指针位置变换,要考虑蛮多细节的 |
|
h**********d 发帖数: 4313 | 22 定义一个Node class,field里面放同类型的instance varable next,然后自己生成一
个circular array,Node头尾相连就行 |
|
s*****y 发帖数: 897 | 23 你怎么保证你找到的最大两个子串的头尾都是leaf
除非你在每个node那里加多一个变量mark是不是leaf |
|
i******t 发帖数: 158 | 24 第4题, 我理解是:对矩阵里任何一个横,竖, 斜方向上的三元组(a,b,c),
在结果里如果有头尾两个数(a,c) 或者(c,a), 那中间的数b 要末不出现, 要末出现a和
c之间.
比如 2,x,1,x,3 是非法的, 3,x,1,x,2 也是非法的. 同理, 对(3,5,7)这个元组, 数列
里不能有 3,x,7,x,5等等
如果按我这个理解, 只要作一个map,int> 记录所有不允许的组合
, 然后对所有长度4-9的permutation检查就可以了 |
|
g*****i 发帖数: 2162 | 25 原来如此,只要生成的不是目标的公倍数,就要检查下头尾,去掉一些余数一样的. |
|
v*****k 发帖数: 7798 | 26 每一次都有和现在工作相关的问题就不说了。
第一轮:
找数组两个数和为定值,两种方法: hash/从头尾扫描。
hash有什么潜在问题? 要考虑如果两个数相等的case
实现pow(double a, int b)
第二轮:
一个matrix如
1 2 3 4
5 6 7 8
9 10 11 12
row, column都是sorted,并且第n行所有数字都要小于第n+1行。不是careercup上的
原题--要简单很多。查找x是否在matrix内,不在的话返回(-1,-1)
实现两种方法(从右上角开始找和两次binary search)。用binary search的时候要考
虑一下如果x>a[end-1][end-1] 或x |
|
b*******y 发帖数: 232 | 27 其实挺简单的,都是版上常见题目,不过还是没写出bug free的程序,抓到了两个小
bug...据说facebook比较看重bug free
本来拿到心仪的offer之后不打算面了,但因为我的时间问题,已经reschedule多次了
,不好意思再说不面,而且facebook挺好的,就面了
先让我讲了一堆research的课题,然后问我希望在facebook里做什么样子的工作
编程题1
level by level,每个level是一行,打印binary tree
(careercup上的题,可以用两个queue来交互存储level;也可以用一个queue存储pair<
node*,level>信息)
编程题2
一个数组,有正有负,如果数组中任何三个不同的数之和等于0,则返回true;不然就返
回false
(就是先sort,然后逐一选定一个元素,剩下的元素头尾两个指针移动判断之和是否大
于小于或者等于选定那个元素的负数) |
|
L***Q 发帖数: 508 | 28 一种延伸是不让你使用额外的storage,所以没法用hashtable。
三个数和为0,不用分正数负数,一个hashtable装全部数就行了。使用hashtable有一
个容易产生bug的地方:把一个数多次计算。比如-2 -1 4,不留神就会得到-2, -2,
4的组合。hashtable只告诉你某个数存在否,但没告诉你存在多少次。
不用hashtable的解法,sort然后头尾往中间扫描两端。最初是第一个array[0],然后
test array[1..n]中是否有2个数加起来等于-array[0]。接下来是array[1],test
array[2..n]中是否有2个数加起来等于-array[1]。时间复杂度仍然为O(N^2),空间复
杂度O(1) |
|
S**I 发帖数: 15689 | 29 ☆─────────────────────────────────────☆
sugarbear (sugarbear) 于 (Thu Apr 7 00:42:48 2011, 美东) 提到:
找 二叉树 两个最大的相同子树
没答上来。
见了四个,被拒了。 第二个是manager,后来主动写信跟我联系,说把我推荐给industry recruiting team,不知道是不是有转机? 觉得industry recruiting应该更难吧? 求祝福!
☆─────────────────────────────────────☆
boohockey (Pursuit of Dreams!) 于 (Thu Apr 7 10:27:03 2011, 美东) 提到:
bless
这道题有没有正解
industry recruiting team,不知道是不是有转机? 觉得industry recruiting应该更
难吧? 求祝福!
☆─────────────────────────────────────☆
grass (美丽人生) 于 (Thu Apr... 阅读全帖 |
|
|
|
c*******r 发帖数: 275 | 32 各个公司不一样,有的是6个月头尾两天低的一天,有的是6个月中最低的一天,有的公
司是一年内最低。像M公司以前是两年内最低,赶上08年那一波的都发了不少。 |
|
g*********e 发帖数: 14401 | 33 来自主题: JobHunting版 - L 电面2 写一个辅助函数来reverse字符串
先调用这个函数reverse整个字符串
再对每个单词调用这个函数,用空格区分头尾 |
|
t**5 发帖数: 127 | 34 做一个28X28矩阵M。26字符加头尾。M(x,y)是x后面跟y的概率。每一行概率和为1。所
以“Markov"。不过不用管这个名字啦。
所以问题就是怎么走一边list,把这个矩阵做出来。 |
|
r******n 发帖数: 351 | 35 这个题就是典型的马额科夫连。 tk45说的很对。28*28是因为头尾要加两个状态。然后
就扫描字符,每扫描过一个,在相应cell 加1。 比如 ”but “ 要在 开始-> b 的
cell加1, b-> u的 cell 加1, 。。。t -> 中止 cell 加1 。最后把每列normalize
一下就行了。 不用HHM,动态规划什么,哪有那么复杂。 复杂度是O(n)。 n是字符
数。
it |
|
E*******0 发帖数: 465 | 36 2, 第三种情况分组分别是头尾相连。
3, 但是还有一种情况是,刚好三个三个为一组,组成平均数,还有若干个平均数数值。
4, 刚好四个四个为一组,组成平均数,还有若干个平均数。
5, 刚好五个五个为一组,组成平均数,还有若干个平均数。
依此类推,越来越发现这个问题是NP问题,不知道大家有什么看法。 |
|
Z*****Z 发帖数: 723 | 37 头尾两个指针从前、后扫。谁短就移谁。
point
together |
|
Z*****Z 发帖数: 723 | 38 头尾两个指针从前、后扫。谁短就移谁。
point
together |
|
l*n 发帖数: 529 | 39 你们这是在挖坟啊,呵呵。这题应该是没办法从算法上改善了,因为无论如何每个袁术
好歹都得看一遍吧,所以优化的方法只有多核了,切成几块每块单独处理,然后考虑相
邻块的头尾看是不是要做merge。 |
|
c********t 发帖数: 5706 | 40 我的问题是每个元素能用几次?
第一问 2,5,4,6 每个元素被用2次(头尾只用1次)
而根据你对follow up的描述,似乎1,2,3,4,可以用2-1,3-1,4-1来组成差值?
1) |
|
l*****a 发帖数: 14598 | 41 你弄个stringbuilder
然后一列一列append,每列也是个stringbuilder,偶数列头尾没有reverse 之后在插入
总结果
###注意最后一列填满
最后对于总的string.
for(int j=0;j
//这是一行的
for(int i=0;i
str.charAt(i*col+j)
} |
|
t*********h 发帖数: 941 | 42 头尾各出现一次吧 找到后穿起来就醒了 O(N) |
|
c********t 发帖数: 5706 | 43 赞图
这道题很难写对,
先试试把 reverse whole list 写对。
然后m to n 就是如何把头尾与原来的连接好了
还有就是多用变量。 |
|
r*******e 发帖数: 7583 | 44 也可以在C里找大于a的最小元素,同时记录distance = 2(c-b)
又想了一下,其实搜索过程可以简化
把A,B,C sort之后merge
然后在merged array里找元素来源的substr
这样的substr必须包含a,b,c,而且只有中间那个元素可以重复
例如merged之后的下标是 aabbcabc...
abbc和bca,cab,abc都符合条件
这样用两个指针扫一遍merged array,然后比较所有的substr的头尾之差
找的过程是O(n) |
|
n*******w 发帖数: 687 | 45 两数和
感觉是想用一个数组当做参数传进去,返回true false表示是否找到。
想到的办法
1 暴力解 n^2
2 用另一个数组存sort之后对应元素在原数组中的index,两指针头尾往中间遍历这个
index数组,直到相遇。空间 n,时间nlgn
3 建hashtable,将value map到index。遍历hashtable。 |
|
s********s 发帖数: 49 | 46 代码好长啊。。。其实有了2sum,3sum的做法很直观吧:先取出一个数,那么只要在剩
下的数字里面找到两个数字使得他们的和等于(target – 那个取出的数)就可以了吧。
所以3sum就退化成了2sum, 取出一个数字,这样的数字有N个,所以3sum的算法复杂度
就是O(N^2 )。
注意你排序只需要排一次,后面的工作都是取出一个数字,然后找剩下的两个数字,找
两个数字是2sum用头尾指针线性扫,这里很容易错误的将复杂度算成O(N^2 log N),这
个是不对的。
可以参考这个总结 http://tech-wonderland.net/blog/summary-of-ksum-problems.html |
|
z***y 发帖数: 50 | 47 比如要处理下面的数列:
-3 -2 -4 1 4 -5 -2 -1 2 4
↑ ↑ ↑
i mid j
翻转(i,j)部分后变成
-3 -2 -4 -1 -2 -5 4 1 2 4;
↑ ↑
i j
再翻转两段
-3 -2 -4 -5 -2 -1 1 4 2 4.
Helper函数先循环调用两次, 把前半段和后半段都处理好.
然后只需把前半段的非负数和后半段的非正数处理好就行了.
三次翻转就可以了, 方法类似于把一篇文章以单词为单位头尾调换. |
|
|
s*****4 发帖数: 25 | 49 Unit test要写到多详细呢 有人可以给个例子吗?
test cases我只想到这三个:
1. last hit和cur hit发生在同一秒
2. last hit和cur hit发生在不同秒, 检查结果是否正确的把last hit到cur hit之间
的element reset 0
3. 同2, 且last hit跟cur hit发生的间隔很大(ex. 30000s), 检查run time, 看是否
在reset完300个element后就early return
concurrency是不是只需要用一个mutex把hit()头尾用mutex.lock(), nutex.unlock()
包住就行了? 不是很确定... |
|
s*****4 发帖数: 25 | 50 Unit test要写到多详细呢 有人可以给个例子吗?
test cases我只想到这三个:
1. last hit和cur hit发生在同一秒
2. last hit和cur hit发生在不同秒, 检查结果是否正确的把last hit到cur hit之间
的element reset 0
3. 同2, 且last hit跟cur hit发生的间隔很大(ex. 30000s), 检查run time, 看是否
在reset完300个element后就early return
concurrency是不是只需要用一个mutex把hit()头尾用mutex.lock(), nutex.unlock()
包住就行了? 不是很确定... |
|