10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 1668|回复: 11
收起左侧

新鲜g家电面

[复制链接] |试试Instant~ |关注本帖
EasonS 发表于 2016-2-10 07:25:04 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 本科 全职@Google - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
不知道这题地里有没有:Write code to print all pairs of natural numbers. 这题关键是all 讨论一下意思是pretend the program can run forever 所以就有了下面的死循环做法
void printPairs() {
        int candidate = 0;

        while(true) {
                //0,2 1,2
                for (int i=0; i<candidate; i++) {
System.out.println(i, candidate);
}
//2,2
System.out.println(candidate, candidate);
//2,1 2,0
                for (int j=0; j<candidate; j++) {
System.out.println(candidate, j);
}
//increment
candidate ++;
}
}
就这一题 然后就聊问题了 求onsite~~. more info on 1point3acres.com

评分

1

查看全部评分

qetu133 发表于 2016-2-11 00:10:54 | 显示全部楼层
echo33 发表于 2016-2-10 12:27. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
这个是啥意思啊?

int是64位或者32位,32位最大值是2^32 = 20亿多一点,电脑一秒钟可以执行上百亿次,所以这个program在32位机器上就一秒不到就回overflow,64位也就稍微比32位慢一点而已。要想run forever,就要用‘0’、‘1’、‘2’...‘9’单独的ASCii字符来模拟递增,因为这样才不会有64,32这样的限制,可以达到10^n(n是当前程序可用内存大小以bits为单位再除以8bits,8bits因为ASCii占用8bits),才能一直跑下去。
回复 支持 2 反对 0

使用道具 举报

qetu133 发表于 2016-2-10 10:39:34 | 显示全部楼层
你这个程序就一秒钟就会死,说要run forever应该是指用char的array来模拟integer递增,c++就是vector<char>
回复 支持 反对

使用道具 举报

CrossTheWall 发表于 2016-2-10 11:37:14 | 显示全部楼层
qetu133 发表于 2016-2-10 10:39
你这个程序就一秒钟就会死,说要run forever应该是指用char的array来模拟integer递增,c++就是vector
. from: 1point3acres.com/bbs
是啊,这题就是用string来模拟代替long long, 感觉楼主被interviewer阴了
回复 支持 反对

使用道具 举报

echo33 发表于 2016-2-10 12:27:10 | 显示全部楼层
qetu133 发表于 2016-2-10 10:39 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
你这个程序就一秒钟就会死,说要run forever应该是指用char的array来模拟integer递增,c++就是vector

这个是啥意思啊?
回复 支持 反对

使用道具 举报

zhuyisong 发表于 2016-2-11 00:16:28 | 显示全部楼层
qetu133 发表于 2016-2-11 00:10
int是64位或者32位,32位最大值是2^32 = 20亿多一点,电脑一秒钟可以执行上百亿次,所以这个program在32 ...

.鐣欏璁哄潧-涓浜-涓夊垎鍦您好,请问这种题目应该看什么书去准备啊,感觉leetcode并没有涵盖这方面的题
回复 支持 反对

使用道具 举报

echo33 发表于 2016-2-11 00:58:10 | 显示全部楼层
qetu133 发表于 2016-2-11 00:10
int是64位或者32位,32位最大值是2^32 = 20亿多一点,电脑一秒钟可以执行上百亿次,所以这个program在32 ...

zan~~~duoxie~~!
回复 支持 反对

使用道具 举报

 楼主| EasonS 发表于 2016-2-11 01:06:23 | 显示全部楼层
qetu133 发表于 2016-2-11 00:10. Waral 鍗氬鏈夋洿澶氭枃绔,
int是64位或者32位,32位最大值是2^32 = 20亿多一点,电脑一秒钟可以执行上百亿次,所以这个program在32 ...

你的思路和作风好厉害 但是我问interviewer这是死循环、int也有个limit 对方回答木有关系 let's pretend... 他还介绍了两句big integer类。。。。反正。。
回复 支持 反对

使用道具 举报

 楼主| EasonS 发表于 2016-2-11 02:05:52 | 显示全部楼层
在网上看到了如下enumerator的做法, 简直欺负我读书少,,引用:resource 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
.鏈枃鍘熷垱鑷1point3acres璁哄潧
How can we have an enumeration for all possible pairs of natural numbers, such
as [0,0] [3,7] [98,1153] [3,0] [0,1] [2,1] [75,34] ....?
Cantor's enumeration works by first producing all pairs where the sum of the
parts is zero ([0,0]) then producing all pairs where the sum of the parts is
1 ([0,1] [1,0]) then all pairs with a sum of 2 ([0,2] [1,1] [2,0]) then the. From 1point 3acres bbs
threes ([0,3] [1,2] [2,1] [3,0]) and so on and so on. Any possible cair you
care to mention will obviously eventually be reached (the sum of its parts. 鍥磋鎴戜滑@1point 3 acres
gives you an idea of how long it will take), and clearly no pair can be produced.鏈枃鍘熷垱鑷1point3acres璁哄潧
twice. It works like this

   struct Enumerate_Pairs. visit 1point3acres.com for more.
   { Enumerate_Natural_Numbers enum_sum;
     Enumerate_Natural_Numbers enum_first;
     string sum, first, second, zero;

     Enumerate_Pairs()
     { sum = enum_sum.next(); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
       zero = sum;
       first = enum_first.next();
       second = sum; }

     more()
     { return true; }

     next()
     { string answer = "[";
       answer = answer + first + "," + second + "]";
       if (second == zero)
       { sum = enum_sum.next();. Waral 鍗氬鏈夋洿澶氭枃绔,
         enum_first.reset();
         first = enum_first.next();
         second = sum; }.1point3acres缃
       else. 鍥磋鎴戜滑@1point 3 acres
       { first = enum_first.next();.鐣欏璁哄潧-涓浜-涓夊垎鍦
         second = Enumerate_Natural_Numbers::previous(second); }
       return answer; } };
. from: 1point3acres.com/bbs
Notice that the two internal enumerators for natural numbers could be replaced. Waral 鍗氬鏈夋洿澶氭枃绔,
by any other enumerators and it would still work in the same way. That's why the
slightly mystifying variable "zero" is used - it captures the first thing ever
to come out of an enumerator, so it can serve as the equivalent of "0" for any
set. We can enumerate all possible pairings of C++ programs with data files,. from: 1point3acres.com/bbs
we could even make pairs out of pairs of things, giving lists of any length.
回复 支持 反对

使用道具 举报

 楼主| EasonS 发表于 2016-2-11 02:12:49 | 显示全部楼层
其实我觉得g家面我一刚毕业本科应该不会考这种“知识储备” (也可能我见的题目太少/学的太少) 所以我当时确定这题没见过的时候 也确定了要展示出自己get things done的能力 和交流讨论的能力 所以希望没有正确答案 希望能过,,
回复 支持 反对

使用道具 举报

 楼主| EasonS 发表于 2016-2-27 04:11:26 | 显示全部楼层
楼主过啦 春假去onsite
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-3-5 12:02:33 | 显示全部楼层
qetu133 发表于 2016-2-11 00:10
int是64位或者32位,32位最大值是2^32 = 20亿多一点,电脑一秒钟可以执行上百亿次,所以这个program在32 ...

请问写成code是什么样?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-21 04:23

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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