墨菲定律的好兄弟,俊介定律



「俊介定律」,是一种心理学效应,由俊介 · 萧(Alrcly Suzuki)提出的。其根本内容是:糟糕的事一旦发生,更多糟糕的事就会接踵而至。
Focus
糟糕的事一旦发生,人的心情就会变得很焦躁,人在焦躁的心态下就会做更多错误的事情。本周一开始各种倒霉的事就不断的发生。虽然因为知道「俊介定律」,所以有所预期,但是还是挺让人难受的,好在慢慢的我也缓解过来了。这次水逆我获得的经验是,要想办法把一件糟糕的事转换成确辛的事,转化的过程可能只是自欺欺人,但是安慰剂效应能缓解更多糟糕的事发生。
在所有好友里我可能是目前收入最低的。富二代、体制内的好友不必多说,创业的好友有创业的艰辛,但是收入还是可观的。但即使是同样起跑线的好友,我依然是落后的。一个在我后面入行编程的大学同学,不到一年的时间,已经一跃成为项目经理了。通过和他的谈话,我能感觉到自己和他的差距,他在入职的时候就有很明确的职业规划目标,而我却是浑浑噩噩的度过每一天。我约了他这周末小聚一下,希望能从他的经历里获取到更多对我有价值的经验。
虽然想短期内通过 PHP 获得一份更好的工作,但是 PHP 已经到了连发糕这样的圈外人士都知道没前途的地步了,所以我能选的只能是 Java。我未来的职业路线,得要好好规划一下了。
Review
算法训练营 · 体验课
学完了「算法训练营 · 体验课」感觉还挺有收获的,对「复杂度分析」、「数组、链表、跳表」、「 树、二叉树、二叉搜索树」和「递归」都有了一些基本的认识。课程里的 Homework 够我在 LeetCode 上学习一周的时间了,至于课程的总结得找个时间做出 Anki。
透视HTTP协议
本周「透视HTTP协议」 没有学习新的知识,只是把之前学习的内容整理后做成了 Anki。限时的「算法训练营 · 体验课」已经学完了,接下来的主要目标是完成「透视HTTP协议」 的相关课程。
算法 Algorithm
跟着「算法训练营 · 体验课」完成了 LeetCode 的「移动零」、「爬楼梯」、「括号生成」三道算法题目。
移动零
这个题目是对数组的操作,对数组的操作尽力避免非头尾的删除、插入操作,因为这些会移动数组的元素,从而增加时间复杂度。
# 执行用时 136 ms
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
for i in nums:
if i == 0:
nums.remove(0)
nums.append(0)
# 执行用时 48 ms
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
j = 0
for index in range(len(nums)):
if nums[index] != 0:
nums[j],nums[index] = nums[index],nums[j]
j += 1
return nums
爬楼梯
本质上就是斐波拉契数列
# 暴力递归
class Solution:
def climbStairs(self, n: int) -> int:
if n==0 or n==1:
return 1
return self.climbStairs(n - 1) + self.climbStairs(n - 2)
# 动态规划
class Solution {
public int climbStairs(int n) {
int p = 0, q = 0, r = 1;
for (int i = 1; i <= n; ++i) {
p = q;
q = r;
r = p + q;
}
return r;
}
}
括号生成
最简单的解法是直接写一个完整递归树再修剪树,更合理的方式是生成的同时修剪树。
class Solution:
strList = []
def generateParenthesis(self, n: int) -> List[str]:
self.strList = []
self.generate(0, 0, n, '')
return self.strList
def generate(self, left, right, n, s):
if left == n and right == n:
self.strList.append(s)
return
if left < n:
self.generate(left + 1, right, n, '%s(' % s)
if right < left:
self.generate(left, right + 1, n, '%s)' % s)
观察到一个有趣的点。其他语言的用户都是想着怎么提高性能,Python 用户的画风就不一样了,全是搞奇技淫巧减少代码行数的。