刷题记录
刷题记录本笔记按题意抽象、核心思路、代码实现、复杂度和易错点记录题目。代码默认使用 Java,所有结论均以给定约束为前提。 12345678flowchart TD A[读取题目] --> B[提取约束和目标] B --> C[手工推演样例] C --> D[选择数据结构] D --> E[证明核心步骤] E --> F[实现代码] F --> G[检查空值 边界 溢出] G --> H[分析复杂度] 求出胜利玩家的数目题意共有 n 名玩家,pick[i] 表示某名玩家获得某种颜色的球。若玩家编号为 i,只要其任意一种颜色的球数量严格大于 i,该玩家就是胜利玩家。颜色编号范围为 0 到 10。 思路使用二维数组记录每名玩家拥有的各色球数量。统计完成后,逐个玩家检查是否存在数量大于玩家编号的颜色。每名玩家最多计数一次。 12345678910111213141516171819class Solution { public int winningPlayerCount(int n,...
算法
Java 算法与常用类库笔记算法题的核心是把问题转换为明确的数据模型,选择匹配的数据结构,并通过复杂度分析判断方案能否在约束内运行。Java 代码还要注意输入解析、数值范围、比较器约定和可变对象的使用方式。 解题流程123456789flowchart TD A[阅读题目与约束] --> B[定义输入输出和边界] B --> C[构造最小示例] C --> D[设计朴素解法] D --> E[分析时间与空间复杂度] E --> F[选择数据结构或优化方法] F --> G[编码] G --> H[使用边界用例验证] H --> I[复盘不变量与可复用模板] 复杂度双重遍历通常为 O(n^2),在数据量较大时需要考虑哈希表、排序、双指针或前缀结构。复杂度估算应包含最坏情况,并同时考虑额外空间。 规模 常见可接受复杂度 n <= 20 指数搜索或状态压缩 n <= 10^3 O(n^2) n <= 10^5 O(n log n) 或 O(n) n...
项目笔记
O2O 项目笔记该项目采用 Spring Cloud 微服务与 OpenResty 动静分离架构。OpenResty 直接提供静态页面,将动态接口请求转发到 Gateway,再由网关路由到后端服务。项目启动、配置和故障排查应围绕请求链路进行。 系统架构12345678910111213141516flowchart LR U[浏览器] --> O[OpenResty] O -->|静态资源| W[Web 目录] O -->|动态请求| G[Gateway] G --> A[Account] G --> N[Notice] G --> R[Order] G --> P[Payment] G --> S[Storage] G --> T[Stroke] A --> D[(数据库与基础设施)] N --> D R --> D P --> D S --> D T --> D 模块职责 模块 类型 主要职责...
OSS学习记录(Agent项目中)
下面是整理后的学习笔记(已去掉第十和第十三部分,并将关键数据结构改为表格形式)。 阿里云 OSS 与 Agent 联动学习笔记一、OSS 是什么Alibaba Cloud OSS(Object Storage Service)是一个云端对象存储服务。 它用于存放图片、视频、文档、日志、模型输出等文件。 在系统架构中: 数据库:存业务数据 OSS:存文件本体 Agent:处理逻辑 + 调用 OSS 二、OSS 核心概念 概念 含义 示例 Bucket 存储空间(类似顶级目录) product-images Object 实际文件 main.jpg Object Key 文件路径 products/10001/main.jpg Endpoint 访问域名 oss-cn-hangzhou.aliyuncs.com AccessKey 访问凭证 AK / SK 补充说明: Bucket 必须全局唯一 Object Key 本质是字符串路径(没有真实文件夹) Endpoint 必须与地域一致 三、Agent 为什么需...
快速上手一个项目
新项目快速上手指南 一、先跑起来(不要一上来就读代码)目标确认系统是“活的”,避免在错误环境中分析代码。 操作步骤 阅读 README.md 或启动文档 安装依赖(如 npm install / mvn install / bun install) 启动服务(如 npm run dev / java -jar / docker-compose up) 访问接口或前端页面 你必须确认 服务是否成功启动(无致命报错) 服务端口(如 8080 / 3000) 是否有异常日志 数据库是否连接成功(连接池 / ORM 日志) 常见问题 端口被占用 环境变量未配置(如 .env) 数据库未启动 / 账号密码错误 依赖未安装完整 👉 结论:系统跑不起来,一切分析没有意义 二、搞清项目结构(10分钟扫一遍)目标快速定位代码职责分层,避免“迷路式阅读代码”。 核心目录说明12345controller / api 👉 接口入口(处理请求)service 👉 核心业务逻辑reposi...
部署脚本编写相关
部署验证流程跑通验证的 6 个步骤12345678910111. 本地执行部署脚本 ↓2. 代码上传到生产服务器 (47.242.65.47) ↓3. Docker 容器启动 ↓4. Nginx 配置生效 ↓5. 访问 http://www.chronode.net/ 能正常打开 ↓6. 确认功能 OK 核心思想:别纸上谈兵,先实际部署一次看看 执行步骤Step 1:本地准备12345678910# 1. clone 项目git clone https://github.com/xiaoxijin/gf_v3cd gf_v3# 2. 安装依赖bun install# 3. 检查部署脚本ls -la deploy.shcat deploy.sh # 确认配置(服务器 IP、端口等) Step 2:执行部署123# 运行部署脚本(需要设置密码环境变量)export SERVER_PASSWORD="你的服务器密码"bash deploy.sh Step 3:验证结果12345678910111213# 1. SSH 连上服务器ssh r...
服务器与部署相关
可以,而且这套东西你一旦理顺,后面做项目就不会一直“哪里都懂一点,但一上手就慌”。 你现在遇到的,本质上是 开发环境、测试环境、生产环境 三套东西混在一起了。先给你一句最核心的话: 写代码可以在服务器上,但“调试前端、联调接口、连数据库、发版部署”通常都要区分清楚你现在到底在操作哪一个环境。 我用最接地气的方式带你搭框架。 一、你现在到底在做什么你现在说的场景,一般是这样的: 代码放在服务器上你通过 VSCode Remote SSH、终端、跳板机之类连到服务器开发。 前端想在本机浏览器看效果因为浏览器在你电脑上,不在远程服务器上,所以你需要: 要么把前端项目在本机跑起来 要么把服务器上的前端端口转发到本机 后端和数据库可能在不同地方常见组合有: 前端在本机,后端在测试服务器,数据库也在测试服务器 前后端都在服务器,数据库单独一台 前端本机,后端本机,数据库 Docker / 本机 / 远程库 部署到测试环境不是“写完代码自动就有了”,而是把你改的代码发到测试环境机器上,再启动服务。 上线把测试通过的版本发布到生产环境。 二、你先建立这 4 个...
并发编程与数据隔离
并发编程与数据隔离核心问题并发场景下的典型数据问题: 问题 描述 例子 竞态条件 多个线程同时读写同一数据,结果依赖执行顺序 两个请求同时修改用户余额 脏读 读到未提交的事务数据 A 修改未提交,B 读到了 丢失更新 后提交的覆盖先提交的 两人同时编辑同一文档 幻读 同一查询在不同时间返回不同行数 统计用户数时有人新注册 数据库层面解决方案事务隔离级别: 隔离级别 脏读 丢失更新 幻读 默认数据库 Read Uncommitted ❌ ❌ ❌ - Read Committed ✅ ❌ ❌ Oracle, PostgreSQL Repeatable Read ✅ ✅ ❌ MySQL Serializable ✅ ✅ ✅ - 乐观锁 vs 悲观锁: 12345678-- 悲观锁(先锁再改)SELECT * FROM users WHERE id = 1 FOR UPDATE;UPDATE users SET balance = balance - 100 WHERE id = 1;-- 乐观锁(先改再检查版本号)UPDATE u...
LoRA+QLoRA
LoRA是什么?LoRA(Low-Rank Adaptation)是一种用于微调大模型(LLM / Diffusion / Transformer)的技术。 冻结原始模型参数,只训练一个低秩矩阵来表示权重更新。 这样可以让权重变化 ΔW 不需要完整矩阵,在极少训练参数的情况下,让模型学到新任务能力。 为什么需要?lora的设计亮点参数少,速度快,模块化 模块化的本质: LoRA 将“任务能力”封装成一个 独立的参数模块,可以在 不改变原模型 的情况下加载或卸载。 在代码层面 LoRA 是一个 外挂模块: 1234567Base Model │ ├── W (冻结权重) │ └── LoRA Module ├── A └── B 训练时: 1只训练 LoRA Module 推理时: 1Base Model + LoRA 可以随时加载/卸载能力例如一个基础模型: 1LLaMA 不同能力可以变成不同 LoRA: 123456base_model │ ├── finan...
Scaling Law
Scaling LawScaling Laws for Neural Language Models Chain of Thought (CoT) 是让模型把逻辑推导过程写出来 Instruction Tuning 是教模型听懂并执行人类指令 Scratchpad 就是给模型一块“草稿本”,让它在最终输出答案前先在大脑(上下文)里打草稿。 CoT (思维链):是行为方式,像是在说“请步步为营地思考”。 Instruction Tuning (指令微调):是训练手段,通过海量“指令-回复”对让模型变乖、变聪明。 Scratchpad (草稿纸):是技术实现,通过在输出中强制包含中间步骤,利用已生成的 Token 来辅助生成后续更复杂的 Token(即“以空间换逻辑”)。 Scratchpad 定义Scaling Law(规模法则) 是 AI 界的“大力出奇迹”指南。它告诉我们:如果你投入更多的算力、更多的数据、更大的模型参数,AI 的性能就会预测性地变得更强。 它揭示了模型性能并不是随机增长的,而是遵循严格的数学幂律关系。 为什么要学这个?理解 Scaling Law 能...








