123
返回列表 发新帖
楼主: ruiwanbing
跳转到指定楼层
上一主题 下一主题
收起左侧

狗去onsite

🔗
kevinxw 2018-4-30 04:54:36 | 只看该作者
全局:
woderegou 发表于 2018-4-30 04:42
看了你这个例子我就知道我的行不通了,然后我觉得你这个好像也不行,比如这个例子:
00000000
11100110 ...

我昨天后来想了一下,应该是分别从起点和终点出发,找沿着路线的厚度为1的墙,然后挨个去掉试试。
感觉就是贪心算法。想不到有其他规律
回复

使用道具 举报

🔗
xietianyi 2018-4-30 13:58:28 | 只看该作者
全局:
感谢楼主分享,对第四题有点疑问: 那么第四题的输入变量是什么? 这里给的file path 是做什么? 是有api能取出file content吗? 那么这个题是不是先处理file content,读出user id 以及他发言的次数,然后做top K? 这题有对file的更详细的说明吗? 还有第一题,那个第二问是跟第一问的平均值没有什么关系对吗?
回复

使用道具 举报

🔗
Ferocious丶 2018-5-1 06:50:15 | 只看该作者
全局:
第三题followup应该是dijkstra的思路吧?
heap里push进{i,j,steps,walls}.
bfs过程中每次只push进 走到下一个点number of break walls <= 1的点,
最后poll出来的点能到destination就直接返回那个step
  1. public static int shortest(int[][] M, int[] start, int[] end){
  2.                 int m = M.length;
  3.                 int n = M[0].length;
  4.                 Integer[][] dist = new Integer[m][n];
  5.                 PriorityQueue<int[]> heap = new PriorityQueue<>((a, b) -> (a[2] - b[2]));
  6.                 heap.offer(new int[]{start[0], start[1], 0, 0});
  7.                 int[][] dirs = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}};
  8.                 while(!heap.isEmpty()){
  9.                         int[] cur = heap.poll();
  10.                         int i = cur[0];
  11.                         int j = cur[1];
  12.                         int steps = cur[2];
  13.                         int walls = cur[3];
  14.                         dist[i][j] = steps;
  15.                         if(i == end[0] && j == end[1]){
  16.                                 return steps;
  17.                         }
  18.                         for(int[] dir : dirs){
  19.                                 int ni = i + dir[0];
  20.                                 int nj = j + dir[1];
  21.                                 if(ni >= 0 && ni < m && nj >= 0 && nj < n && dist[ni][nj] == null && (walls + M[ni][nj] <= 1)){
  22.                                         int nwalls = walls + M[ni][nj];
  23.                                         heap.offer(new int[]{ni, nj, steps + 1, nwalls});
  24.                                 }
  25.                         }
  26.                 }
  27.                 return -1;
  28.         }
复制代码
回复

使用道具 举报

🔗
 楼主| ruiwanbing 2018-5-19 03:45:04 | 只看该作者
全局:
是的 但是要解释清楚用PQ的time complexity
回复

使用道具 举报

🔗
 楼主| ruiwanbing 2018-5-19 03:47:26 | 只看该作者
全局:
我觉得Dijkstra很对啊!
回复

使用道具 举报

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

本版积分规则

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