编码

执行下面的 Python 代码,打印结果是什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
squares = (k * k for k in range(4))
view = squares

p = next(squares)
q = next(view)
rest = list(squares)

try:
tail = next(view)
except StopIteration:
tail = "end"

print(p, q, rest, tail)

这是 Python 的**生成器表达式(generator expression)**语法,而非元组

list() 会把生成器中剩余的所有元素全部取完

输出

1
0 1 [4,9] end

常见的排序方法:

排序 平均时间 最好 最坏 空间
冒泡 O(n²) O(n) O(n²) O(1)
简单选择 O(n²) O(n²) O(n²) O(1)
快速 O(nlogn) O(nlogn) O(n²) O(logn)
归并 O(nlogn) O(nlogn) O(nlogn) O(n)
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1)

简单选择排序需要比较 $(n-1)n/2$次

线性代数

对于$ A_{m\times n}$ 且 $rank(A) = r$

那么

项目 数值
未知量个数 n
自由未知量 n−r
齐次方程解空间维数 n−r
解空间基向量个数 n−r

AI coding

1
阅读@README.md ,理解项目背景、需求、输入输出和验收标准,只分析不写代码
1
@main.py @data/SCHEMA.md  查看数据文档和已有代码框架,把需求分成独立实现的不同阶段,可以做到一部分一部分验证,先分析不修改代码