50. 绳子和剪刀

这是之前遇到过的一个面试题,说实话,当时想到了开头,但没能进行下去,毕竟循环的条件和结束循环的条件并不容易找。而且要求在纸上手写代码,有点紧张,错误连篇。当他说完的那一刻,我已经在心里默默算出了答案,但似乎跟他的要求不相符,就一直没能说出来。

题目是这样的:有一根绳子,奇数长度时从一端减去1米长的一段,偶数长度时从中间剪断,你写一个程序,把这根绳子全部剪成1米长的小段,需要几刀?

刀数是显而易见的,就是绳子的长度减1,但是无法表达出如何实现这一过程,我写了开头,就没能在写下去。今天刚好在家没事,突然想起这个问题,觉得肯定能用代码描述这个过程。想了整整一个下午,都没有解决这个问题,后来我还画了这个图

想是不是将一根绳子拆分成类似一棵树会简单一些,即统计树的最底下一层的1个数就可以知道最终剪了几刀。但是用PHP实现这样一棵树,显然是把这个问题想复杂了,不应该有这么复杂的,但是递归一时半会又不知道怎么实现。

Read More

49. 讲故事和刷经验值

内容来源自 得到栏目 万维钢-精英日课第二季 日课004。

早上醒来,收到同学推送的这篇付费订阅,于是就打开来看,正如评论所说“世界从来都不公平,真实的世界就是充满复杂和套路”,这些日子刚找好工作,很受启发,我也就订阅了得到的精英日课这个专栏。顺便也整理成一份MarkDown文档,当做读书笔记来保存。

前些日子跟一个已去上海发展的小伙伴聊天,说我月底要去百度糯米入职了。他告诉我说他有一个小伙伴在阿里巴巴,说自己然而只是一条打工狗,没日没夜的打工,赚经验,点技能树,最后发现年纪大了,除了一身经验能卖钱,其它的都干不动了。

我说不都是这样吗,对我们来说,也只有不断点亮技能树来养家糊口。他不时就说谁谁都转go语言了……一开始我也很附和,是呀,应该趁早转过去。后来也就不想再说这些,就很不客气的说,其实这些真的只是一个工具。你看前不久还看到群里有人聊天说,你看你写go一个月挣一万五,然人家写.net一年挣一百多万,你说争这些有用吗。你php要是写的好,一样能赚钱,只是说对于刚入职来说,确实php没其它语言赚的多,但是这持续不了多久,还是要看自己掌握的程度。

Read More