-
二分查找算法总结
关于二分查找 在一个已经排序的数组中找到目标值, 是二分查找的常见用途。 我们选一个区间中点 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 更像是一种工具,解决的是「我怎么和服务器对话,封装业... -
使用 TanStack Query 管理服务器状态(Server State)
为什么需要 TanStack Query 工作在客户端,用来在客户端管理服务器状态。 服务器状态有其独特的特点: 它存储在远程,我们无法直接控制。 它需要异步获取。 它可能被其他人修改,导致我们本地的数据“过时”(stale)。 它和缓存、重试、数据同步等概念紧密相关。 想象下面这些场景: 代码冗余:每个需要请求数据的组件,几乎都要重复写一遍 isLoading, ... -
使用 React Hook Form 现代、高效的处理表单
核心心法:非受控组件 (Uncontrolled Components) RHF 管理的表单,在数据更改时不会立刻渲染,而是类似于非受控组件那样特定时刻部分渲染,这带来了更高的性能。 但是同时,它又提供了一系列很实用的工具,能让你享受到受控组件一般的开发管理体验。 要理解 RHF,首先必须理解受控组件和非受控组件的区别。 受控组件 (Controlled Component):这是我们... -
Server Actions —— 前后端交互的未来形态
概述 Server Actions 是可以直接从客户端代码(尤其是 Client Components)中调用的异步函数,但它们的函数体本身只在服务器上执行。 在这种模式下,你不会在浏览器 DevTools 的 Network 面板中看到任何请求,因为请求由服务器帮你完成了。这个看起来是多加了一层服务器在中间转发,不过也会带来几项优点: 服务器会自动缓存,大量客户端使用同一份数据的时候,...