传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 3593|回复: 15
收起左侧

Zenefits 实习电面面经

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

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

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

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

x
Zenefits 实习电面面经。

// 给定二维数组,表示一片海洋,1代表有岛,0代表没岛。返回相连岛屿的大小。
. Waral 鍗氬鏈夋洿澶氭枃绔,
// Input:. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
//[["1", "0", "0", "1"],. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
// ["1", "0", "0", "1"],
// ["1", "1", "0", "0"]]. 1point 3acres 璁哄潧
// Output:
// [4, 2]

// Input:. visit 1point3acres.com for more.
//[["1", "1", "1", "0"],
// ["1", "0", "1", "0"],
// ["1", "1", "1", "0"]]
// Output:
// [8]


. from: 1point3acres.com/bbs
解法就是DFS。
.鏈枃鍘熷垱鑷1point3acres璁哄潧

评分

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):. visit 1point3acres.com for more.
  2.         m = len(board)
  3.         if m == 0:. 鍥磋鎴戜滑@1point 3 acres
  4.                 return . more info on 1point3acres.com
  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):
    . 1point 3acres 璁哄潧
  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]. 鍥磋鎴戜滑@1point 3 acres
  19.                                 newcol = col + nbcol[k]
  20.                                 dfs(newrow, newcol, count + 1, res)
  21.         for row in range(m):.鏈枃鍘熷垱鑷1point3acres璁哄潧
  22.                 for col in range(n):
  23.                         count = 1
  24.                         res = []
  25.                         if visit[row][col] == False and board[row][col] == '1':. 1point 3acres 璁哄潧
  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':
  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
    -google 1point3acres
  48.                                         nbrow = [1, 0, 0, -1]
  49.                                         nbcol = [0, 1, -1, 0]
  50.                                         for k in range(4):
    . 1point 3acres 璁哄潧
  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:
  54.                                                         if visit[newrow][newcol] == False and board[newrow][newcol] == '1':
  55.                                                                 stack.append([newrow, newcol]). 1point 3acres 璁哄潧
  56.                                 res.append(count)
  57.         return res
  58. print iterDFS(board)
  59.                                                
  60.                                        
复制代码
回复 支持 反对

使用道具 举报

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呢?

    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);
    }.1point3acres缃
    if (y != column - 1) {
        sum += dfs(used, land, x, y + 1, row, column);-google 1point3acres
    }
回复 支持 反对

使用道具 举报

 楼主| 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
. more info on 1point3acres.com哪用这么麻烦 我昨晚做了 把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?

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

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-24 20:24

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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