《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 3681|回复: 15
收起左侧

Zenefits 实习电面面经

[复制链接] |试试Instant~ |关注本帖
laonawuli 发表于 2015-3-28 02:02:14 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 实习@Zenefits - Other - 技术电面 |Pass其他

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

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
Zenefits 实习电面面经。

// 给定二维数组,表示一片海洋,1代表有岛,0代表没岛。返回相连岛屿的大小。. visit 1point3acres.com for more.

// Input:
//[["1", "0", "0", "1"],
// ["1", "0", "0", "1"],
// ["1", "1", "0", "0"]]
// Output:
// [4, 2]
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
// Input:
//[["1", "1", "1", "0"],
// ["1", "0", "1", "0"],
// ["1", "1", "1", "0"]]
// Output:
// [8]



解法就是DFS。
.鐣欏璁哄潧-涓浜-涓夊垎鍦

评分

5

查看全部评分

dhldxy 发表于 2015-3-28 02:08:21 | 显示全部楼层
哈。这道题在2 sigma遇到过.

补充内容 (2015-3-28 02:09):
LZ还面了些啥?
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-3-28 02:16:22 | 显示全部楼层
dhldxy 发表于 2015-3-28 02:08
哈。这道题在2 sigma遇到过. . more info on 1point3acres.com

补充内容 (2015-3-28 02:09):
. visit 1point3acres.com for more.
只有这一题
回复 支持 反对

使用道具 举报

sanguine 发表于 2015-3-28 10:43:11 | 显示全部楼层
FB也喜欢考这个题
回复 支持 反对

使用道具 举报

池大侠 发表于 2015-4-4 22:48:21 | 显示全部楼层

mark with code
  1. def getRes(board):
  2.         m = len(board)
  3.         if m == 0:
  4.                 return
  5.         n = len(board[0])
  6.         visit = [[False for i in range(n)] for j in range(m)]
  7.         #count = 0. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  8.         #global count. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  9.         def dfs(row, col, count, res):
  10.                 if row >= 0 and row < m and col >= 0 and col < n and board[row][col] == '1' and visit[row][col]== False:. Waral 鍗氬鏈夋洿澶氭枃绔,
  11.                         nbrow = [1, 0, -1, 0]
  12.                         nbcol = [0, 1, 0, -1]
  13.                         #count += 1
  14.                         res.append(count)
  15.                         #res = res[-1]
  16.                         board[row][col] = True
  17.                         for k in range(4):
  18.                                 newrow = row + nbrow[k]
  19.                                 newcol = col + nbcol[k]
  20.                                 dfs(newrow, newcol, count + 1, res)
  21.         for row in range(m):
  22.                 for col in range(n):. Waral 鍗氬鏈夋洿澶氭枃绔,
  23.                         count = 1
  24.                         res = []. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  25.                         if visit[row][col] == False and board[row][col] == '1':
  26.                                 dfs(row, col, count, res)
  27.                                 print res.1point3acres缃
  28.         #print board
  29. board = [['1','0','0','1'],['1','0','0','1'],['1','1','0','0']]. Waral 鍗氬鏈夋洿澶氭枃绔,
  30. . more info on 1point3acres.com

  31. #print getRes(board)
  32. def iterDFS(board):
  33.         m = len(board)
  34.         if m == 0:
  35.                 return
  36.         n = len(board[0])
  37.         visit = [[False for i in range(n)] for j in range(m)]
  38.         stack = []
  39.         res =[]
  40.         for row in range(m):
  41.                 for col in range(n):
  42.                         if visit[row][col] == False and board[row][col] == '1':
  43.                                 stack = [[row, col]]
  44.                                 count = 0
  45.                                 while len(stack) > 0: 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  46.                                         cur = stack.pop(). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  47.                                         visit[cur[0]][cur[1]] = True
  48.                                         count += 1
  49.                                         nbrow = [1, 0, 0, -1]
  50.                                         nbcol = [0, 1, -1, 0]
  51.                                         for k in range(4):
  52.                                                 newrow = cur[0] + nbrow[k]
  53.                                                 newcol = cur[1] + nbcol[k]
  54.                                                 if newrow >= 0 and newrow < m and newcol >= 0 and newcol < n:
  55.                                                         if visit[newrow][newcol] == False and board[newrow][newcol] == '1':
  56.                                                                 stack.append([newrow, newcol]). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  57.                                 res.append(count) . Waral 鍗氬鏈夋洿澶氭枃绔,
  58.         return res. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  59. print iterDFS(board). 1point3acres.com/bbs
  60.                                                 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  61.                                        
复制代码
回复 支持 反对

使用道具 举报

xiaojunji 发表于 2015-4-5 05:51:01 | 显示全部楼层
楼主你到底怎么做的啊?求code!
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-4-5 06:20:18 | 显示全部楼层
xiaojunji 发表于 2015-4-4 13:51
楼主你到底怎么做的啊?求code!

http://collabedit.com/vet2v
回复 支持 反对

使用道具 举报

xiaojunji 发表于 2015-4-5 06:29:20 | 显示全部楼层
laonawuli 发表于 2015-4-5 06:20
http://collabedit.com/vet2v
.1point3acres缃
谢谢,对角线连通不算连通吗?
回复 支持 反对

使用道具 举报

hefang 发表于 2015-4-5 07:05:19 | 显示全部楼层
laonawuli 发表于 2015-4-5 06:20
http://collabedit.com/vet2v

感谢楼主分享的code。我有个疑问,既然下面的代码考虑了所有children的情况,这算不算BFS呢?

    if (x != 0) {
        sum += dfs(used, land, x - 1, y, row, column);
    }
    if (y != 0) {
        sum += dfs(used, land, x, y - 1, row, column);
    }
    if (x != row - 1) {
        sum += dfs(used, land, x + 1, y, row, column);
    }
    if (y != column - 1) {
        sum += dfs(used, land, x, y + 1, row, column);
    }
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-4-5 08:39:47 | 显示全部楼层
hefang 发表于 2015-4-4 15:05
感谢楼主分享的code。我有个疑问,既然下面的代码考虑了所有children的情况,这算不算BFS呢?

    if  ...

这是DFS。因为是递归。BFS用的是Queue。
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-4-5 08:41:45 | 显示全部楼层
xiaojunji 发表于 2015-4-4 14:29
谢谢,对角线连通不算连通吗?

不用管对角线
回复 支持 反对

使用道具 举报

hefang 发表于 2015-4-6 09:52:24 | 显示全部楼层
laonawuli 发表于 2015-4-5 08:39
这是DFS。因为是递归。BFS用的是Queue。

原来是这样子,递归可以算作用了stack
回复 支持 反对

使用道具 举报

nelson16 发表于 2015-4-14 01:21:16 | 显示全部楼层
哪用这么麻烦 我昨晚做了 把1当成-1 0当成1 然后用dp求最大和子区间就好了..
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-4-14 01:23:11 | 显示全部楼层
nelson16 发表于 2015-4-13 09:21.鐣欏璁哄潧-涓浜-涓夊垎鍦
哪用这么麻烦 我昨晚做了 把1当成-1 0当成1 然后用dp求最大和子区间就好了..

高手!请问leetcode有没有类似的题?想了解下
回复 支持 反对

使用道具 举报

limingli1991 发表于 2015-4-14 06:51:41 | 显示全部楼层
nelson16 发表于 2015-4-14 01:21
哪用这么麻烦 我昨晚做了 把1当成-1 0当成1 然后用dp求最大和子区间就好了..
. 1point 3acres 璁哄潧
Can you elaborate a little bit?
回复 支持 反对

使用道具 举报

nelson16 发表于 2015-4-16 05:46:20 | 显示全部楼层
limingli1991 发表于 2015-4-14 06:51
Can you elaborate a little bit?
. 1point3acres.com/bbs
看错题了不好意思 哈哈哈
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-24 04:35

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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