佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: martinng

高手进来,看看一个interview的问题。做对有赏~

[复制链接]
发表于 25-10-2018 11:34 AM | 显示全部楼层
褐眼睛 发表于 25-10-2018 11:27 AM
正是NOT和XOR起了作用。

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

我也不知道是怎样攻克了这个难题,有点莫名其妙。

我倒覺得我講的那麼馬虎,你都能了解,還真是可怕
回复

使用道具 举报


ADVERTISEMENT

发表于 25-10-2018 11:37 AM | 显示全部楼层
yan13 发表于 25-10-2018 11:34 AM
我倒覺得我講的那麼馬虎,你都能了解,還真是可怕

我差不多摸清了这个题目的底细了,毕竟两晚没睡觉(放心,白天有睡)了,所以你一说我就发现你的想法有亮点。
谢谢你!
回复

使用道具 举报

发表于 25-10-2018 11:43 AM | 显示全部楼层
那位中国人很厉害,我竟然要用2晚时间,加上yan13的启发和martinng的提示,才能莫名奇妙的找到破解方法。

这么看来,难怪我会成为不入流的过气程序员(现在转行了)。
回复

使用道具 举报

发表于 25-10-2018 12:04 PM | 显示全部楼层
褐眼睛 发表于 25-10-2018 11:43 AM
那位中国人很厉害,我竟然要用2晚时间,加上yan13的启发和martinng的提示,才能莫名奇妙的找到破解方法。

这么看来,难怪我会成为不入流的过气程序员(现在转行了)。

我坦白說,我覺得你很了不起.我用那種那麼馬虎的解說你都能了解,一般上就是說你很有可能已經想過了,然後你也証實你有過這樣的思路.然後,pascal.
然後.... 我如果不是在做其他東西,我真的幾乎要用筆紙來整理我的思路了,我真的認為這題目有趣.我開始時以為只是用for each來減少字數,沒深入的去了解IF的可能性.
還有...一些中國人,西洋人很可怕.他們會花心思去讀和研究東西.
真的認為你過謙了.

現在做貴行阿?

回复

使用道具 举报

发表于 25-10-2018 12:36 PM | 显示全部楼层
褐眼睛 发表于 25-10-2018 05:57 AM
看来还是很长(而且找到漏洞:第一个不能是F),先让我解释一下它的原理:

当for loop 0..11时,count div 12 = 0
当for loop 12..23时,count div 12 = 1

当0..11,   0 XOR 1=1,1用来乘以 count mod 12 = 0 ...

抱歉,我覺得這個思路已經對了,我現在才仔細看
回复

使用道具 举报

发表于 25-10-2018 02:44 PM | 显示全部楼层
yan13 发表于 25-10-2018 12:04 PM
我坦白說,我覺得你很了不起.我用那種那麼馬虎的解說你都能了解,一般上就是說你很有可能已經想過了,然後你也証實你有過這樣的思路.然後,pascal.
然後.... 我如果不是在做其他東西,我真的幾乎要用筆紙來整理我 ...

真的没有过谦,我可以说打开Jobstreet,我没有符合任何一个程序员或开发者的工作要求。
想了想,我觉得Algorithm Engineer(就是研究算法,比如Image processing....)的工作我可能比较感兴趣,不过那是我在抬高自己了。
总而言之,现在我转行当送货员有快两年了,高不就,低不成,连摩托送货员(中国叫派送员或快递员)的工作也吃苦不了。

你应该是在做着软件开发的工作,是吗?现代iOS和Android加上Web(PHP)开发很吃香,也是年轻人的时代,我已经40岁了,想当年Symbian(后来没落了)是我最后接触的移动平台……。
我承认西洋人和中国人(也包括东亚的日韩吧)很喜欢研究事物,但是本地人胜在好客,热情,还是简单朴素最好吧。
回复

使用道具 举报

Follow Us
发表于 25-10-2018 02:45 PM | 显示全部楼层
yan13 发表于 25-10-2018 12:36 PM
抱歉,我覺得這個思路已經對了,我現在才仔細看

没关系,不过我还是发现这个思路实践起来,Index 0会有麻烦,因为解释过来,必须AND(gate)其他条件。
回复

使用道具 举报

发表于 25-10-2018 04:16 PM | 显示全部楼层
褐眼睛 发表于 25-10-2018 02:44 PM
真的没有过谦,我可以说打开Jobstreet,我没有符合任何一个程序员或开发者的工作要求。
想了想,我觉得Algorithm Engineer(就是研究算法,比如Image processing....)的工作我可能比较感兴趣,不过那是我在抬高自 ...

40不会迟。。。我现在转跑道。。做ML
回复

使用道具 举报


ADVERTISEMENT

发表于 25-10-2018 04:25 PM | 显示全部楼层
aquamax 发表于 25-10-2018 04:16 PM
40不会迟。。。我现在转跑道。。做ML

ML没听说过,上网查了查,是Machine Learning?很了不起的专业哦,类似Automation吗?
回复

使用道具 举报

发表于 25-10-2018 04:38 PM | 显示全部楼层
褐眼睛 发表于 25-10-2018 04:25 PM
ML没听说过,上网查了查,是Machine Learning?很了不起的专业哦,类似Automation吗?

比automation复杂。。牵涉人工智能/算法/数学
回复

使用道具 举报

发表于 25-10-2018 05:00 PM | 显示全部楼层
原來這裏還有那麼多神人 Orz

看著solution都要想很久 自己想的話應該死都想不到用XOR

幾年的Computer Science白讀了
回复

使用道具 举报

发表于 25-10-2018 05:12 PM | 显示全部楼层
aquamax 发表于 25-10-2018 04:38 PM
比automation复杂。。牵涉人工智能/算法/数学

好棒! 请问做ML需要什么样的学历和学问吗?
回复

使用道具 举报

发表于 25-10-2018 05:13 PM | 显示全部楼层
nsda 发表于 25-10-2018 05:00 PM
原來這裏還有那麼多神人 Orz

看著solution都要想很久 自己想的話應該死都想不到用XOR

幾年的Computer Science白讀了

行行出状元,真正的答案楼主还没公开呢。
回复

使用道具 举报

 楼主| 发表于 25-10-2018 06:22 PM | 显示全部楼层
恭喜褐眼睛!你做对了!!! 虽然和答案有点不同,但同样思路,算是答对了。不过我解释下到底答案如何推算出来:

这是yan13写的:
if (((studentList[i % studentList.Length].sex) == 'M' && i < studentList.Length) || ((studentList[i % studentList.Length].sex) == 'F' && i >= studentList.Length))

其实这个是最容易理解的,如果不再更进一层楼,基本上已经是很好方案了。

(studentList[i % studentList.Length].sex) == 'M'   设为A
(studentList[i % studentList.Length].sex) == 'F'    就是!A  (Not A)
( i >= studentList.Length)        设为B (很重要,如果设为!B会比较难发觉和XOR有关系)
( i < studentList.Length)          就是!B   (Not B)

其实,yan13的if 就是:
IF ((A and !B) or (!A and B))

(A and !B) or (!A and B)其实就是 A XOR B
https://en.wikipedia.org/wiki/XOR_gate

所以,yan13的if 应该是:

IF (A XOR B)
=》 If ((studentList[i % studentList.Length].sex) == 'M') XOR ( i >= studentList.Length) )

其实根据这个推算,褐眼睛的是variant,也是正确答案~ 恭喜!果然是鬼才!!!!
回复

使用道具 举报

 楼主| 发表于 25-10-2018 06:24 PM | 显示全部楼层
褐眼睛,pm我你的bank account,我奖赏你RM50~
回复

使用道具 举报

发表于 25-10-2018 06:30 PM | 显示全部楼层
martinng 发表于 25-10-2018 06:22 PM
恭喜褐眼睛!你做对了!!! 虽然和答案有点不同,但同样思路,算是答对了。不过我解释下到底答案如何推算出来:

这是yan13写的:
if (((studentList.sex) == 'M' && i < studentList.Length) || ((studentList. ...

很高兴答对了,我还要感谢你的问题/编程难题才是,可以在家无事磨练磨练一下。

回复

使用道具 举报


ADVERTISEMENT

发表于 25-10-2018 06:31 PM | 显示全部楼层
martinng 发表于 25-10-2018 06:24 PM
褐眼睛,pm我你的bank account,我奖赏你RM50~

真的啊?那我不客气了,反正现在失业。
回复

使用道具 举报

 楼主| 发表于 25-10-2018 06:40 PM | 显示全部楼层
其实,有点过于神化该中国programmer了。他是看了官方答案:

bool bGirl = false;
for (n = 0; n < studentList.Length * 2; n ++) {
    if (studentList[n % studentList.Length].sex == 'M' XOR bGirl) {
        print studentList;
    }
    if (n >= studentlList.Length) bGirl = true;
}


才发现bGirl和下面的IF是多余的,才简化成现在的答案。我不知道他是否会想到用XOR,因为官方答案已经用了XOR。我也是认为XOR这个用法很巧妙,能够实现一物二用,但就是没有很好的数学证明。

感谢yan13的启示,我在翻阅下boolean algebra,才让我彻底明白为什么用XOR。

感谢大家的付出,你们都很棒!!!

褐眼睛,40岁不是大问题。现在的年轻programmer太过注重framework了。整天只是寻找新的和好用的framework,而忽略了基础的训练。所以,他们几乎是100%想不到如何解的。因为他们一看到这个题目,第一时间就是用lambda code,哈哈哈~
回复

使用道具 举报

发表于 25-10-2018 06:51 PM | 显示全部楼层
martinng 发表于 25-10-2018 06:40 PM
其实,有点过于神化该中国programmer了。他是看了官方答案:



才发现bGirl和下面的IF是多余的,才简化成现在的答案。我不知道他是否会想到用XOR,因为官方答案已经用了XOR。我也是认为XOR这个用法很巧妙,能够 ...

40岁再多10年就50岁了啦!
我不知道他是否会想到用XOR
一般来说,汇编(Assembly language)程序员对于XOR在熟悉不过了,主要用来Initialize register,据说XOR BX,BX 或 SUB BX,BX比MOV BX,0  (三个都是SET BX=0的不同指令)快很多,占用较少CPU Cycle. 如果他平时有用MASM那么自然会联想得到。对不起,卖弄了一下学问。

回复

使用道具 举报

发表于 25-10-2018 07:10 PM | 显示全部楼层
martinng 发表于 25-10-2018 06:40 PM
其实,有点过于神化该中国programmer了。他是看了官方答案:



才发现bGirl和下面的IF是多余的,才简化成现在的答案。我不知道他是否会想到用XOR,因为官方答案已经用了XOR。我也是认为XOR这个用法很巧妙,能够 ...

市場需求啊 老闆

雲端時代代碼的readability才能幫公司跑得快又省錢 太過optimize的代碼在每1-2年就refactor的環境下反而顯得呆滯不前

不過你有你的point 不要寫寫不到是很大的分別 看到這裏的大大基礎深厚 真的要反省一下

之前我曾經面試過1間公司就很注重optimization & algorithm的 因為他們也是https://calcite.apache.org/ 這個項目的contributor
interviewer問到怎樣implement一個hash map還有描述complexity時我就知道衰了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-3-2024 11:26 PM , Processed in 0.073915 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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