推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

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

Zenefits 实习电面面经

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

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

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

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

x
Zenefits 实习电面面经。

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

// Input:
//[["1", "0", "0", "1"],
// ["1", "0", "0", "1"],
// ["1", "1", "0", "0"]]
// Output:.1point3acres缃
// [4, 2]. from: 1point3acres.com/bbs
. From 1point 3acres bbs
// Input:
//[["1", "1", "1", "0"],. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
// ["1", "0", "1", "0"],
// ["1", "1", "1", "0"]]
// Output:
// [8]



解法就是DFS。

评分

5

查看全部评分

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

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

使用道具 举报

 楼主| laonawuli 发表于 2015-3-28 02:16:22 | 显示全部楼层
关注一亩三分地微博:
Warald
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):
  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)]. visit 1point3acres.com for more.
  7.         #count = 0 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  8.         #global count. 1point3acres.com/bbs
  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]. more info on 1point3acres.com
  19.                                 newcol = col + nbcol[k]
  20.                                 dfs(newrow, newcol, count + 1, res). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  21.         for row in range(m):
  22.                 for col in range(n):
  23.                         count = 1
  24.                         res = []. 1point 3acres 璁哄潧
  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']]


  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)]. 鍥磋鎴戜滑@1point 3 acres
  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. more info on 1point3acres.com
  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):
  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])
  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
. From 1point 3acres bbs
谢谢,对角线连通不算连通吗?
回复 支持 反对

使用道具 举报

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

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

    if (x != 0) {
        sum += dfs(used, land, x - 1, y, row, column);
    }. From 1point 3acres bbs
    if (y != 0) {
        sum += dfs(used, land, x, y - 1, row, column);
    }. From 1point 3acres bbs
    if (x != row - 1) {. From 1point 3acres bbs
        sum += dfs(used, land, x + 1, y, row, column);.1point3acres缃
    }
    if (y != column - 1) {.1point3acres缃
        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. Waral 鍗氬鏈夋洿澶氭枃绔,
哪用这么麻烦 我昨晚做了 把1当成-1 0当成1 然后用dp求最大和子区间就好了..

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

使用道具 举报

limingli1991 发表于 2015-4-14 06:51:41 | 显示全部楼层
nelson16 发表于 2015-4-14 01:21
哪用这么麻烦 我昨晚做了 把1当成-1 0当成1 然后用dp求最大和子区间就好了..
. 1point3acres.com/bbs
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-7-26 16:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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