一亩三分地论坛

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

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

Zenefits 新鲜电面估计跪了

[复制链接] |试试Instant~ |关注本帖
lightmark 发表于 2015-10-27 05:47:20 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 博士 全职@Zenefits - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
傻逼了,把一个n写成了m没找出来,然后 &&写成了||。。。60min扯了20min写了20min, go through了10min 还剩10min让我run没run出来。。。
估计跪了。
贴个对的代码。. Waral 鍗氬鏈夋洿澶氭枃绔,

// 1 1 1 1 1 0
// 1 0 1 0 0 1       i)  =>  2
// 1 0 1 0 0 1       ii) =>  1
// 1 1 0 1 1 1. 1point 3acres 璁哄潧

// write a library/class that provides two functions / methods
// i) count the number of 'islands' that the matrix has
// ii) count the number of 'lakes' that the matrix has i.e. connected clump of zeros that is entirely surrounded by a single island. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

#include <iostream>
#include <vector>
using namespace std;

. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
class Solution {
    public:. visit 1point3acres.com for more.
        vector<vector<int>> grid;
        int m, n;. 1point3acres.com/bbs
        Solution (vector<vector<int>> &v):grid(v) {
            m = grid.size();
            n = grid[0].size();
        }

        int countHelper() {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
            int count = 0;
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    if (grid[j] == 1) {
                        count++;
                        dfs(i, j, count + 2);
                    }.鐣欏璁哄潧-涓浜-涓夊垎鍦
                }
            }
            return count; . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
        }

        int countIslands() {
            int count = countHelper();
            clear();
            return count;
        }

        int countLakes() {
            countHelper();
            int count = 0;
            for (int i = 1; i < m - 1; i++) {
                for (int j = 1; j < n - 1; j++) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                    if (grid[j] == 0) {
                        int key = -1; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                        if (dfs2(i, j, key))
                            count++;
                    }
                }
            }

. visit 1point3acres.com for more.            for (int i = 1; i < m - 1; i++)
                for (int j = 1; j < n - 1; j++)
                    if (grid[j] == -1)
                        grid[j] = 0;

            clear();
            return count;
        }. Waral 鍗氬鏈夋洿澶氭枃绔,

        void clear() {
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
. 鍥磋鎴戜滑@1point 3 acres                    grid[j] = grid[j]?1:0;
                }
            }
        }

        void dfs(int i, int j, int v) {
            if (i < 0 || i == m || j < 0 || j == n || grid[j] == v || grid[j] == 0).鏈枃鍘熷垱鑷1point3acres璁哄潧
                return;
            grid[j] = v;
            dfs(i - 1, j, v);
. visit 1point3acres.com for more.            dfs(i + 1, j, v);. from: 1point3acres.com/bbs
            dfs(i, j - 1, v);
            dfs(i, j + 1, v);
        }

        bool dfs2(int i, int j, int &key) {. 1point 3acres 璁哄潧
            if (grid[j] > 0) {. From 1point 3acres bbs
                if (key == -1) {
                    key = grid[j];. visit 1point3acres.com for more.
                    return true;
                } else if (key == grid[j])
                    return true;. visit 1point3acres.com for more.
                else
                    return false;
            }
            if (grid[j] == -1)
                return true;. From 1point 3acres bbs
            grid[j] = -1;
            if (i == 0 || j == 0 || i == m - 1 || j == n - 1)
                return false;
            return dfs2(i-1, j, key) && dfs2(i+1, j, key) && dfs2(i, j-1, key) && dfs2(i, j+1, key);
        }
};


int main() {
    vector<vector<int>> grid = {
        {1, 1, 1, 1, 1, 0},
        {1, 0, 1, 0, 0, 1},
        {1, 0, 1, 0, 0, 1},
        {1, 1, 0, 1, 1, 1}. from: 1point3acres.com/bbs
    };
    Solution s(grid);.1point3acres缃
    cout << s.countIslands() << endl;
    cout << s.countLakes() << endl;
    return 0;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
}



补充内容 (2015-10-27 08:32):
好吧,居然过了,白小哥真给力。。。直接onsite了。。。

评分

2

查看全部评分

本帖被以下淘专辑推荐:

tbu 发表于 2015-10-27 06:31:08 | 显示全部楼层
LZ电面之前没做coding challenge么?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-4 01:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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