📣 独立日限时特惠: VIP通行证立减$68
楼主: byq
跳转到指定楼层
上一主题 下一主题
收起左侧

facebook 实习面经

🔗
iwofr 2016-2-23 02:23:29 | 只看该作者
全局:
Jester_Z 发表于 2016-2-23 02:00
quick select的话 只用调用一次 选出来第k个就行了吧  
当你选出来第k个的时候 比k小已经都在它前面了

嗯,如果顺序不重要的话是这样的,如果需要明确的指明closest,second closest... kth closest,还是需要k次select
回复

使用道具 举报

🔗
AndrewFish 2016-2-23 04:25:46 | 只看该作者
全局:
iwofr 发表于 2016-2-22 11:23
嗯,如果顺序不重要的话是这样的,如果需要明确的指明closest,second closest... kth closest,还是需要 ...

给这k个再排一次不就行了klogk
回复

使用道具 举报

🔗
flyflyfly 2016-3-7 03:33:50 | 只看该作者
全局:
LZ, team match有结果了吗?
回复

使用道具 举报

🔗
wk93210 2016-3-7 06:06:35 | 只看该作者
全局:
AndrewFish 发表于 2016-2-23 04:25
给这k个再排一次不就行了klogk

选k次不也是klogk,不都一样么。。。
回复

使用道具 举报

🔗
wk93210 2016-3-7 06:06:50 | 只看该作者
全局:
AndrewFish 发表于 2016-2-23 04:25
给这k个再排一次不就行了klogk

选k次不也是klogk,不都一样么。。。
回复

使用道具 举报

🔗
AndrewFish 2016-3-7 08:16:57 | 只看该作者
全局:
wk93210 发表于 2016-3-6 15:06
选k次不也是klogk,不都一样么。。。

quick select 是kn
回复

使用道具 举报

🔗
wk93210 2016-3-7 14:05:56 | 只看该作者
全局:

- -下午脑子浆糊了。。。又犯傻了。。。
回复

使用道具 举报

🔗
 楼主| byq 2016-3-9 04:45:33 | 只看该作者
全局:
wk93210 发表于 2016-3-7 14:05
- -下午脑子浆糊了。。。又犯傻了。。。

是指面试么?没关系的,不要紧张,虽然我很紧张面试的时候。。。
回复

使用道具 举报

全局:
请问楼主team match interview之后多久拿到offer的? team match interview 有没有问 phd期间相关的project?
回复

使用道具 举报

🔗
sealove999 2016-4-12 16:43:40 | 只看该作者
全局:
第二题
  1. public class Solution {
  2.   int dist(Point p1, Point p2) {
  3.     int dx = p1.x - p2.x;
  4.     int dy = p1.y - p2.y;
  5.     return dx * dx + dy * dy;
  6.   }

  7.   int qs(Point[] arr, Point target, int start, int end) {
  8.     Point pivot = arr[end]; // end out
  9.     int targetdist = dist(pivot, target);
  10.     while (start < end) {
  11.       while (start < end && dist(arr[start], target) < targetdist) {
  12.         start++;
  13.       }
  14.       arr[end] = arr[start]; // into end
  15.       while (start < end && dist(arr[end], target) > targetdist) {
  16.         end--;
  17.       }
  18.       arr[start] = arr[end]; // into start, end empty
  19.     }
  20.     arr[end] = pivot; // into end
  21.     return end;
  22.   }

  23.   public Point[] kn(Point[] arr, Point target, int k) {
  24.     int mid = -1;
  25.     int low = 0;
  26.     int high = arr.length - 1;
  27.     do {
  28.       mid = qs(arr, target, low, high);
  29.       if (mid < k) {
  30.         low = mid + 1;
  31.       } else if (mid > k) {
  32.         high = mid - 1;
  33.       }
  34.     } while (mid != k);
  35.     return Arrays.copyOfRange(arr, 0, k);
  36.   }

  37.   public static void main(String[] args) {
  38.     Solution s = new Solution();
  39.     for (Point p : s.kn(new Point[] {new Point(0, 0), new Point(1, 0), new Point(0, 1),
  40.         new Point(0, 2), new Point(2, 0), new Point(1, 2), new Point(2, 1)}, new Point(3, 0), 5))
  41.       System.out.println(p);
  42.   }
  43. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表