/leetcode-python

Aborted. Start coding on editor of LeetCode directly.

Primary LanguagePython

leetcode

Generate

运行

$ chmod u+x generate.command
$ ./generate.command

可以生成默认的文件结构,包括一个solution.py和一个README.md

特殊情况总结

  1. 空树
if not root:
  1. 空字符串
if not s:
  1. 空链表
if not head:
  1. 空数组
if not li:
  1. 在循环的时候如果在循环内更新res,有可能在结尾处还需要更新一次, 因为有可能一直到出循环都没有满足if条件,但是实际上res需要更新了
for loop:
    if xxx:
        res = max(...)  # update res
    else:
        xxx
res = max(...)  # update res again
  1. 树只有根节点一个节点
if not root.left and not root.right:
  1. 动态规划的时候问到初始值,可能造成IndexError
if n == 1:  # prevent IndexError
    xxx
dp = [...]
dp[1] = xxx
dp[2] = xxx
# transformation equation
  1. 负数和零
if n <= 0:

注意事项总结

  1. 注意返回的数据类型,比如1'1'不同,11.0不同。

  2. 动态规划的时候,如果只跟前固定数目的项有关,则可以不用数组而只用固定数目的变量存储。 比如d[i] = d[i - 1] + d[i - 2],则可以只用两个变量存储。

  3. 不要滥用not xxx。注意,如果一个数可能为0,而被初始化为None, 那么判断这个数是否已被赋值不能用if not xxx,因为not 0 == Truenot None == True。除此之外not False也是一个道理,真是大坑。