【转载 From MITBBS】Facebook On Site 面经

1. 给你一些平面的点(坐标是整数),求能够成正方形的数目。
我想了想这题大概可以这么做:把每两个点之间的距离用hashmap存下来,key是
distance, values是arraylist of point pairs, 比如(p1, p2), (p3,p4)之间距离
都是6, 把他们都放到map.get(6)的list里面。这样一共要查(n,2)pairs, time也就是
(n^2). 下一步对于每一个distance, 查看对应的list size是不是大于4(至少有4个
pairs之间距离相同)。然后对于每一个list再进一步确定有没有正方形,比如
(p1,p2), (p1,p3), (p1,p4), (p2, p3), (p2, p4), (p3, p4) 都在list里,就可以确
认这四个点可以组成正方形。。。。确认的时候可以再建一个hashmap, map p1 to (p2
, p3, p4), p2 to (p3, p4), 然后找需要的pair是不是都在map里。。。就是好麻烦这
个solution, 不知有没有简单点的解法?


2. 设计json的data structure实现json encoding 要求one line version先不考虑
indent,follow up考虑indent和括号
来自这里
http://www.mitbbs.com/article_t/JobHunting/32883371.html
没有思路,不知怎么start, 还请大家帮忙。。。

No comments:

Post a Comment