一亩三分地论坛

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

扫码关注一亩三分地公众号
查看: 2589|回复: 15
收起左侧

Zenefits 实习电面面经

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

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

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

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

x
Zenefits 实习电面面经。
. 1point3acres.com/bbs
// 给定二维数组,表示一片海洋,1代表有岛,0代表没岛。返回相连岛屿的大小。

// Input:
//[["1", "0", "0", "1"],
// ["1", "0", "0", "1"],
// ["1", "1", "0", "0"]]
// Output:. 鍥磋鎴戜滑@1point 3 acres
// [4, 2]

// Input:. 鍥磋鎴戜滑@1point 3 acres
//[["1", "1", "1", "0"],
// ["1", "0", "1", "0"],
// ["1", "1", "1", "0"]]
// Output:
// [8]



解法就是DFS。. 1point 3acres 璁哄潧

评分

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遇到过.

补充内容 (2015-3-28 02:09):

只有这一题
回复 支持 反对

使用道具 举报

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).鏈枃鍘熷垱鑷1point3acres璁哄潧
  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:
  11.                         nbrow = [1, 0, -1, 0].鏈枃鍘熷垱鑷1point3acres璁哄潧
  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]. more info on 1point3acres.com
  19.                                 newcol = col + nbcol[k]
  20.                                 dfs(newrow, newcol, count + 1, res)
  21.         for row in range(m):. Waral 鍗氬鏈夋洿澶氭枃绔,
  22.                 for col in range(n):
  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. visit 1point3acres.com for more.
  28.         #print board
  29. board = [['1','0','0','1'],['1','0','0','1'],['1','1','0','0']]. 鍥磋鎴戜滑@1point 3 acres

  30. .鏈枃鍘熷垱鑷1point3acres璁哄潧
  31. #print getRes(board)
  32. def iterDFS(board):
  33.         m = len(board). Waral 鍗氬鏈夋洿澶氭枃绔,
  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:. 鍥磋鎴戜滑@1point 3 acres
  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]. 1point3acres.com/bbs
  54.                                                 if newrow >= 0 and newrow < m and newcol >= 0 and newcol < n:. From 1point 3acres bbs
  55.                                                         if visit[newrow][newcol] == False and board[newrow][newcol] == '1':
  56.                                                                 stack.append([newrow, newcol])
  57.                                 res.append(count) . From 1point 3acres bbs
  58.         return res
  59. print iterDFS(board)
  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

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

使用道具 举报

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

感谢楼主分享的code。我有个疑问,既然下面的代码考虑了所有children的情况,这算不算BFS呢?
. visit 1point3acres.com for more.
    if (x != 0) {
. from: 1point3acres.com/bbs         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求最大和子区间就好了..
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
Can you elaborate a little bit?
回复 支持 反对

使用道具 举报

nelson16 发表于 2015-4-16 05:46:20 | 显示全部楼层
limingli1991 发表于 2015-4-14 06:51. visit 1point3acres.com for more.
Can you elaborate a little bit?

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

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-9 20:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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