一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 552|回复: 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出来。。。. 1point3acres.com/bbs
估计跪了。
贴个对的代码。. from: 1point3acres.com/bbs

// 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
. Waral 鍗氬鏈夋洿澶氭枃绔,
// 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;
. 鍥磋鎴戜滑@1point 3 acres

class Solution {. 1point3acres.com/bbs
    public:
        vector<vector<int>> grid;
        int m, n;
        Solution (vector<vector<int>> &v):grid(v) {
            m = grid.size();.鏈枃鍘熷垱鑷1point3acres璁哄潧
            n = grid[0].size();
        }. from: 1point3acres.com/bbs

        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++;
                    }
                }
            }

            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() {-google 1point3acres
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    grid[j] = grid[j]?1:0;
                }
            }
        }

        void dfs(int i, int j, int v) {-google 1point3acres
            if (i < 0 || i == m || j < 0 || j == n || grid[j] == v || grid[j] == 0)
                return;. 鍥磋鎴戜滑@1point 3 acres
            grid[j] = v;
            dfs(i - 1, j, v);
            dfs(i + 1, j, v);.鐣欏璁哄潧-涓浜-涓夊垎鍦
            dfs(i, j - 1, v);.鐣欏璁哄潧-涓浜-涓夊垎鍦
            dfs(i, j + 1, v);
        }

        bool dfs2(int i, int j, int &key) {
            if (grid[j] > 0) {-google 1point3acres
                if (key == -1) {
                    key = grid[j];
                    return true;
                } else if (key == grid[j])
                    return true;
                else
                    return false;
            }
            if (grid[j] == -1)
                return true;
            grid[j] = -1;.1point3acres缃
            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);
        }
};. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

-google 1point3acres
int main() {
    vector<vector<int>> grid = {
        {1, 1, 1, 1, 1, 0},
        {1, 0, 1, 0, 0, 1},. from: 1point3acres.com/bbs
        {1, 0, 1, 0, 0, 1},
        {1, 1, 0, 1, 1, 1}
    };
    Solution s(grid);
    cout << s.countIslands() << endl;
    cout << s.countLakes() << endl;
    return 0;
}



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

评分

2

查看全部评分

本帖被以下淘专辑推荐:

tbu 发表于 2015-10-27 06:31:08 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
LZ电面之前没做coding challenge么?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2017-3-29 09:38

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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