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

Snapchat电面

全局:

2016(7-9月) 码农类General 硕士 全职@snapchat - 内推 - 技术电面  | | Other | 应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Snapchat 第一个电面,面试官应该是一个中国人,还是挺友好的。先是问了问简历里面的项目,然后就直接做题了。因为面试之前看了地里面的
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
ollow up:要求分别输出每个group
BFS解决的这道题。

评分

参与人数 2大米 +4 收起 理由
fantasiasango + 3 感谢分享!
超分 + 1 感谢分享!

查看全部评分


上一篇:snapchat电面
下一篇:TripAdvisor on-campus 面经
推荐
 楼主| Lynnklj 2016-9-29 00:38:08 | 只看该作者
全局:
超分 发表于 2016-9-28 13:27
楼主,输出为什么是2?1认识0,1认识2 —> 0,1,2算一个group?那输出不就应该是1了吗?

一共有三个人啊:0,1,2,3.最后一个人谁也不认识,所以自己独立算一个group~~

补充内容 (2016-9-29 00:40):
一共是四个人哈。最后一个自己一个group
回复

使用道具 举报

推荐
xietao0221 2016-9-28 12:18:16 | 只看该作者
全局:
  1. public class Solution {
  2.     public List<List<Integer>> groupOfFriend(int[][] matrix) {
  3.         if(matrix == null || matrix.length == 0) return new ArrayList<>();

  4.         List<List<Integer>> res = new ArrayList<>();
  5.         int[][] dirs = new int[][]{{0,1},{0,-1},{1,0},{-1,0}};

  6.         for(int i = 0; i < matrix.length; i++) {
  7.             for(int j = i; j < matrix[0].length; j++) {
  8.                 Set<Integer> tmpRes = new HashSet<>();
  9.                 if(j >= i && matrix[i][j] == 1) {
  10.                     tmpRes.add(i);
  11.                     matrix[i][j] = 0;
  12.                     dfs(matrix, i, j, tmpRes, dirs);
  13.                     res.add(new ArrayList<>(tmpRes));
  14.                 }
  15.             }
  16.         }
  17.         return res;
  18.     }

  19.     private void dfs(int[][] matrix, int i, int j, Set<Integer> tmpRes, int[][] dirs) {
  20.         tmpRes.add(j);
  21.         matrix[i][j] = 0;
  22.         for(int[] dir: dirs) {
  23.             int newRow = i + dir[0], newCol = j + dir[1];
  24.             if(newRow >= 0 && newCol >= 0 && newCol < matrix[0].length && newRow < matrix.length &&
  25.                     newCol >= newRow && matrix[newRow][newCol] == 1) {
  26.                 dfs(matrix, newRow, newCol, tmpRes, dirs);
  27.             }
  28.         }
  29.     }
  30. }
复制代码
回复

使用道具 举报

推荐
cheeroh 2016-9-22 04:50:15 | 只看该作者
全局:
是不是把explore改一下就行了?

  1. public int numIslands(char[][] grid) {
  2.         if (grid == null || grid.length == 0 || grid[0].length == 0) return 0;
  3.         int island = 0;
  4.         for (int i = 0; i < grid.length; i++) {
  5.             for (int j = 0; j < grid[0].length; j++) {
  6.                 if (grid[i][j] == '1') {
  7.                     explore(grid, i, j);
  8.                     island++;
  9.                 }
  10.             }
  11.         }
  12.         return island;
  13.     }
  14.    
  15.     private void explore (char[][] grid, int i, int j) {
  16.         grid[i][j] = '0';
  17.         for (int k = j+1; k < grid[i].length; k++) {
  18.                 if (grid[i][k] == '1') explore(grid, i, k);
  19.         }
  20.         
  21.         for (int k = i+1; k < grid.length; k++) {
  22.                 if (grid[k][j] == '1') explore(grid, k, j);
  23.         }
  24.     }
复制代码
回复

使用道具 举报

🔗
超分 2016-9-22 03:41:24 | 只看该作者
全局:
Union and Find?
回复

使用道具 举报

🔗
xietao0221 2016-9-22 03:47:11 | 只看该作者
全局:

可以union and find, 但是更简单的是dfs,每遇到一个1都flip成0,在外层count++,最后返回count。参考leetcode island I这题,island II是union and find
回复

使用道具 举报

🔗
 楼主| Lynnklj 2016-9-22 04:00:36 | 只看该作者
全局:

Union and Find可以,但是个人觉得直接DFS或者BFS稍微方便一些吧~~
回复

使用道具 举报

🔗
JunlinZhu 2016-9-22 04:10:17 | 只看该作者
全局:
number of Islands 吗不是。
回复

使用道具 举报

🔗
超分 2016-9-22 04:13:57 | 只看该作者
全局:
JunlinZhu 发表于 2016-9-22 04:10
number of Islands 吗不是。

变形吧,下一个node的走向不是上下左右了,而是对应的那一列/行
回复

使用道具 举报

🔗
frouds 2016-9-22 04:40:04 | 只看该作者
全局:
这题是不是可以理解为 求matrix里面有多少个正方形
回复

使用道具 举报

🔗
JunlinZhu 2016-9-22 07:45:55 | 只看该作者
全局:
超分 发表于 2016-9-22 04:13
变形吧,下一个node的走向不是上下左右了,而是对应的那一列/行

谢谢楼主分享。
回复

使用道具 举报

🔗
warmland 2016-9-23 03:35:07 | 只看该作者
全局:
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则

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