《程序员修炼之道》

  1. Care about your craft. 关心你的技艺。
  2. Think!About your work. 思考你的工作。
  3. Provide Options, Don’t make lame excuses. 提供各种选项,不要找蹩脚的借口。
  4. Don’t live with broken windows. 不要容忍破窗户。
  5. Be a Catalyst for Charge. 主动的去催生变化。“请求原谅比获取许可更容易。”
  6. Remember the big picture. 不要像青蛙一样,只注意眼前的事就会被温水煮熟,要关注大图景。

Read More

《公正:该如何做是好》

零、序

这里所讨论的政治哲学有个人风险和政治风险的双重风险。个人风险是指,哲学通常是教给你质疑你平日最习以为常的东西,这使得你会怀疑,会不知所措,而且这种思考是不可逆的。政治风险是指,理论上了解这些内容你可以变成一个更好的公民,但是这并不是一定的。

一、电车难题

情况一:电车在行使的前方有五个施工人员,而作为司机的你发现刹车失去作用。此时,你发现车的右前方有一个岔路,岔路上只有一名施工工人,你会怎样做?会转下方向盘,用一个无辜的生命挽救另外五个无辜的生命吗?
情况二:电车在行使的前方有五个施工人员,而你是站在车侧前方的山崖上的观察员。车的司机已经向你发出求救信号,表明自己失去了对电车的一切控制。这时你注意到,车子以及为车子提供电力的电线在你脚下经过,如果有重物可以将电线砸断,车子就会停止运行。你想四周环顾,发现在你不远处的山崖旁边有一个胖子。你会怎样做?会将他推下山崖砸断电缆,用一个无辜的生命挽救另外五个无辜的生命吗?(你确信他一定会砸断电线,而且你的体重不够,不能胜任这一任务。)

Read More

LeetCode刷题笔记——Bit Manipulation

136. Single Number (bangbang)

利用的思路是通过异或操作来区分出现偶数次和奇数次的元素。使用一个同类型的元素,不停地对它进行异或,剩下的就是奇数次的,这道题中只有一个元素出现一次,因此剩下的就是他了。

137. Single Number II

这道题和上面的136的题设基本一样,唯一不同的地方是出了一个元素出现一次,剩下的元素都出现三次。这点小小的区别使得只靠奇偶性的位操作方法不能解决了,使用hashmap可以解决,但是如果想要不使用额外空间则需要另辟蹊径。这个我自己师妹想出来,看讨论区第一的思路,屌屌的。我不知道他是怎么想出来的,但是大概的想法是利用位运算的周期性吧?
上一题的核心是:

1
2
3
4
a = 0
def f(x):
global x
a = a ^ x

Read More

本站总访问量