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


一亩三分地论坛

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

Zenefits 新鲜电面估计跪了

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

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

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

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

x
傻逼了,把一个n写成了m没找出来,然后 &&写成了||。。。60min扯了20min写了20min, go through了10min 还剩10min让我run没run出来。。。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
估计跪了。
贴个对的代码。. 鍥磋鎴戜滑@1point 3 acres
.鏈枃鍘熷垱鑷1point3acres璁哄潧
// 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

// 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. 鍥磋鎴戜滑@1point 3 acres

#include <iostream>
#include <vector>
using namespace std;. visit 1point3acres.com for more.


class Solution {
    public:
        vector<vector<int>> grid;
        int m, n;
        Solution (vector<vector<int>> &v):grid(v) {
            m = grid.size();
            n = grid[0].size();
        }

        int countHelper() {-google 1point3acres
            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;.鏈枃鍘熷垱鑷1point3acres璁哄潧
                        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). 1point 3acres 璁哄潧
                        grid[j] = 0;

            clear();
            return count;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        }
. 1point3acres.com/bbs
        void clear() {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
            for (int i = 0; i < m; i++) { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                for (int j = 0; j < n; j++) {. more info on 1point3acres.com
                    grid[j] = grid[j]?1:0;.1point3acres缃
                }
            }
        }

        void dfs(int i, int j, int v) {
            if (i < 0 || i == m || j < 0 || j == n || grid[j] == v || grid[j] == 0)
                return;
            grid[j] = v;. 1point 3acres 璁哄潧
            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) {
                if (key == -1) {
                    key = grid[j];
                    return true;. visit 1point3acres.com for more.
                } else if (key == grid[j])
                    return true;. visit 1point3acres.com for more.
                else
                    return false;
            }
            if (grid[j] == -1)
                return true;
            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);
        }
};
.鏈枃鍘熷垱鑷1point3acres璁哄潧

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 1point 3acres bbs    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 | 显示全部楼层
LZ电面之前没做coding challenge么?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-23 10:29

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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