-
回溯(backtrack)算法
时间复杂度 分析回溯问题的时间复杂度,有一个通用公式:路径长度×搜索树的叶子数 叶子节点的数量很多时候和排列数或者组合数有关,涉及阶乘。 排列数定义 Anm=n×(n−1)×⋯×(n−m+1)⏟m 个因子=n!(n−m)!A_n^m = \underbrace{n \times (n-1) \times \cdots \times (n-m+1)}_{m \text{ 个因子}} = ... -
三分钟出锅的极简小素菜:上海青
这盘菜整体流程甚至不超过 3 分钟,而且食材(上海青)几乎在任何菜场都能买到。 因为太简单,我几乎懒得写教程,不过还是有一点技巧在里面。 食材准备 任何地方都能买到的上海青(其实就是小青菜) 大蒜🧄 生抽 盐 糖(可选) 猪油(可选) 蚝油(可选) 步骤 把上海青洗干净,对半切或整颗炒都行,看心情。 热锅,小火,让锅底微微冒点白烟时下油。 丢两片拍碎的大蒜进去,让它散开... -
二叉树与递归 - 总结
心智模型 解决二叉树问题的一个通用心法 把两边节点都看成黑盒,而避免考虑太多细节陷进去。 我们仅在根节点、左黑盒、右黑盒三个东西里考虑问题。 递归函数其实是一个可复用的模式,想清楚设计一个模式对所有节点都适用。 最后考虑一下边界情况,如递归到最深处会怎样。 一些优化思路: 内部创建的函数,如果用到了外部变量,是否可以优化成纯函数? 是否有不需要搜索的地方,可以短路、剪枝?(这通常可... -
二分查找算法总结
关于二分查找 在一个已经排序的数组中找到目标值, 是二分查找的常见用途。 我们选一个区间中点 mid ,然后不断比较 target 和 mid ,根据比较结果来重新调整区间范围,这使得我们可以跳过很多不需要遍历的元素,而节省时间复杂度。 有两个比较重要的总结: 什么时候用二分查找?必须有序数组吗? 刚学的时候往往认为无序数组中,二分查找就没用了。实际上下面三点很重要: 二分查找真正需要的... -
链表题总结
链表这种数据结构,解题的时候空间复杂度往往是 O(1) 关于 dummy node 有时候,解法中需要设置一个 dummy 节点,指向 head: 1 const dummy: ListNode = { val: 0, next: head }; 这种技巧在 head 节点有可能被删除或更改的情况下会很有用。 关于循环终止条件的设置 下面这两种终止条件都是很常见的: 123while ... -
给你的 cursor 接入数据库 Git MCP 服务
特别简单,需要有 python 环境 安装 1pip install mcp-server-git 配置 打开 cursor 的 mcp.json 文件,其中添加如下配置: 123456"mcpServers": { "git": { "command": "python", "args": ["-m", "mcp_server_git", "--repository", ... -
Windows 安装 choco 命令(包管理器)
win + x 键一起按,选择“终端管理员”,以此在管理员模式中打开终端 下面的一行命令搞定: 1Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityP... -
使用 OverlayScrollbars 优雅的自定义滚动条
我对 windows 系统中的浏览器滚动条样式一直很不满意,它巨丑,但我忍了。直到我在某天开发网站时候遇到了一个问题…
-
给你的 cursor 接入数据库 MCP 服务
无论是用来开发,还是用来 debug ,AI 都需要某些关键信息。而有时候,这些信息不存在于源代码,而是存在于数据库。这时候,让 AI 拥有操作和读取数据库的能力就显得至关重要。
-
Server Action,TanStack Query ... 我到底要用谁
区分 一句话总结: 读操作,管理数据状态 => TanStack Query 写操作,现代、优雅的数据变更 => Server Action TanStack Query 更像是 “读操作和状态同步管理器”,像是管家,解决的是「我怎么在客户端管理这份数据(缓存、状态、重新获取)」。 而 Server Action 更像是一种工具,解决的是「我怎么和服务器对话,封装业...