一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 2839|回复: 15
收起左侧

Zenefits 实习电面面经

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

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

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

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

x
Zenefits 实习电面面经。

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

// Input:
//[["1", "0", "0", "1"],
// ["1", "0", "0", "1"],
// ["1", "1", "0", "0"]]. 鍥磋鎴戜滑@1point 3 acres
// Output:. 1point3acres.com/bbs
// [4, 2]
. Waral 鍗氬鏈夋洿澶氭枃绔,
// Input:
//[["1", "1", "1", "0"],
// ["1", "0", "1", "0"],. From 1point 3acres bbs
// ["1", "1", "1", "0"]]
// Output:
// [8]

. From 1point 3acres bbs

解法就是DFS。

评分

5

查看全部评分

dhldxy 发表于 2015-3-28 02:08:21 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
哈。这道题在2 sigma遇到过. . 1point 3acres 璁哄潧

补充内容 (2015-3-28 02:09):. 鍥磋鎴戜滑@1point 3 acres
LZ还面了些啥?
回复 支持 反对

使用道具 举报

 楼主| laonawuli 发表于 2015-3-28 02:16:22 | 显示全部楼层
关注一亩三分地微博:
Warald
dhldxy 发表于 2015-3-28 02:08
哈。这道题在2 sigma遇到过.

补充内容 (2015-3-28 02:09):
. 1point 3acres 璁哄潧
只有这一题
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

mark with code
  1. def getRes(board):.鏈枃鍘熷垱鑷1point3acres璁哄潧
  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)]. 鍥磋鎴戜滑@1point 3 acres
  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:
  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):. 鍥磋鎴戜滑@1point 3 acres
  23.                         count = 1. visit 1point3acres.com for more.
  24.                         res = []
  25.                         if visit[row][col] == False and board[row][col] == '1':
  26.                                 dfs(row, col, count, res)
  27.                                 print res
  28.         #print board
  29. board = [['1','0','0','1'],['1','0','0','1'],['1','1','0','0']]


  30. #print getRes(board)
  31. def iterDFS(board):
  32.         m = len(board)
  33.         if m == 0:
  34.                 return. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  35.         n = len(board[0])
  36.         visit = [[False for i in range(n)] for j in range(m)]
  37.         stack = []
  38.         res =[]
  39.         for row in range(m):
  40.                 for col in range(n):
  41.                         if visit[row][col] == False and board[row][col] == '1':. 1point3acres.com/bbs
  42.                                 stack = [[row, col]].鐣欏璁哄潧-涓浜-涓夊垎鍦
  43.                                 count = 0
  44.                                 while len(stack) > 0:
  45.                                         cur = stack.pop()
  46.                                         visit[cur[0]][cur[1]] = True
  47.                                         count += 1. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  48.                                         nbrow = [1, 0, 0, -1] 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  49.                                         nbcol = [0, 1, -1, 0]
  50.                                         for k in range(4):. From 1point 3acres bbs
  51.                                                 newrow = cur[0] + nbrow[k]
  52.                                                 newcol = cur[1] + nbcol[k]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  53.                                                 if newrow >= 0 and newrow < m and newcol >= 0 and newcol < n:.鏈枃鍘熷垱鑷1point3acres璁哄潧
  54.                                                         if visit[newrow][newcol] == False and board[newrow][newcol] == '1':
  55.                                                                 stack.append([newrow, newcol])
  56.                                 res.append(count)
  57.         return res
  58. print iterDFS(board). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  59.                                                
  60.                                        
复制代码
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

谢谢,对角线连通不算连通吗?
回复 支持 反对

使用道具 举报

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

感谢楼主分享的code。我有个疑问,既然下面的代码考虑了所有children的情况,这算不算BFS呢?
. From 1point 3acres bbs
    if (x != 0) {
        sum += dfs(used, land, x - 1, y, row, column);
    }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    if (y != 0) {
        sum += dfs(used, land, x, y - 1, row, column);. 1point 3acres 璁哄潧
    }
    if (x != row - 1) {. From 1point 3acres bbs
        sum += dfs(used, land, x + 1, y, row, column);
    }.1point3acres缃
    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求最大和子区间就好了..

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?

看错题了不好意思 哈哈哈
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-2-27 08:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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