来自 曙光 21 天打卡挑战 - Day3
继续学习贪心算法证明贪心算法可以有如下步骤:
证明贪心选择性质,即选择局部问题的最优解可以构建全局最优解(此处的“可以构建”指的是,一定存在一个最优解,使得局部最优解是这个最优解的一部分)
常用证明法:替换法。假设存在一个最优解,证明根据贪心策略选择的第一步可以替换掉该最优解的第一步,而不会使解变差。
证明最优子结构,即一个问题的最优解包含其子问题的最优解。用于保证对这个小一点的子问题再次应用贪心策略,可以导向最优解。
其他方法:交换论证、数学归纳法。
说实话,目前对贪心算法的证明理解没有到能用严格数学语言描述的程度。打算明天继续深入严格证明和特殊题目(临项交换、后悔法),希望能构建缜密的逻辑。
杂项几个 Linux 小知识:
curl 指令。它可以向一个 url 发送 http 请求。常见的参数是 -fsSL
tee 指令:将标准输入流同时导向一个文件和标准输出流
/dev/null: 黑洞文件,一般用于丢弃输出
C 艹 小知识:
std::sort 对 std::pair 类型的数组排序时,先对...
来自 曙光 21 天打卡挑战 - Day1
学习 FastAPI & SQLModel.FastAPI 是一个用于构建 Web 后端的 python 库,SQLModel 是配套的数据库操作库(使用 ORM)
大致过程:
先通读文档(说实话官方文档实在有点啰嗦,甚至从建表开始手把手教你 SQL),期间有啥不懂就问亲爱的 ds 老师(比如各种 Join 的区别);
然后 clone 下来官方 github 仓库 fastapi-fullstack-template,大致读了一遍项目结构,重点是理清多文件各模块的功能,其中主要有
routes/xxx.py: 负责分文件编写 api 端点
db.py: 建立数据库连接,和初始化数据库
deps.py: 提供 token 读取验证、数据库会话(session) 等,用于将依赖注入 api 端点函数
models.py: 保存 SQL 表的 python class 表示,和 api 请求与响应的模型(两者是通用的,得益于 SQLModel)
crud.py: 封装一些常用的数据库读写方法,比如 create_us...