百度之星初赛补题记录
比赛补题记录推荐补题顺序: 第 6 题 → 第 4 题 → 第 8 题 → 第 7 题 第 6 题:要求自己能够独立写出并 AC 第 4 题:理解思路后能够独立实现 第 8 题:重点学习核心转化,争取独立实现 第 7 题:作为进阶图论题学习 第 6 题:未竟之志时间限制:1 秒 | 空间限制:512 MB 题目描述赛场上有 n 根钢栏杆从左到右排成一排,第 i 根钢栏杆的助推值为 a[i]。 在正式投出椅子之前,小鹿可以至多进行一次调整:选择一根钢栏杆,将它从原来的位置取出,再插入到当前序列的任意位置。调整后钢栏杆的相对顺序按新的排列确定。 随后小鹿会选择连续的 5 根钢栏杆作为助跑轨道,并获得这 5 根钢栏杆助推值之和的分数。 请你帮助小鹿求出,他能获得的最大分数。 输入格式本题包含多组测试数据。第一行包含一个整数 T,表示测试数据的组数。 对于每组测试数据,第一行包含一个整数 n。第二行包含 n 个整数 a[1], a[2], …, a[n],表示每根钢栏杆的助推值。 数据范围 1 ≤ T ≤ 2 × 10⁵ 5 ≤ n ≤ 2 × 10⁵ -10⁹ ≤ a[i] ≤ ...
记录一次 Fork 代码随想录仓库并提交 PR 的经历
前言最近我一直跟着《代码随想录》刷 LeetCode。在学习图论章节时,我发现部分题目的 Go 版本存在缺失或代码与题解主题不一致的情况。 例如,卡码网第 0099 题的广度优先搜索题解中,Go 示例实际写的是递归 DFS;官网的深搜页面中,Go 标题下面也没有正常显示代码。后来做到第 0100 题时,我又发现原题解中没有 Go 的 BFS 版本。 刚好卡尔哥也一直鼓励大家共同维护项目,于是我决定不只是自己在本地改一改,而是尝试 Fork 仓库、修正代码并提交 Pull Request。这也是我第一次完整参与开源仓库的贡献流程,所以把操作步骤和遇到的问题记录下来。 一、Fork 原仓库首先进入代码随想录的 GitHub 仓库,点击右上角的 Fork,将项目复制一份到自己的 GitHub 账号下。 Fork 完成后,会得到一个属于自己的远程仓库。页面上通常会显示: 1forked from youngyangyang04/leetcode-master 这里需要理解两个远程仓库的概念: origin:自己账号下的 Fork 仓库,拥有推送权限。 upstrea...
rag_knowledge_go部署到云服务器上
Go 项目云服务器部署:从交叉编译到服务运行1. 前言Go 项目开发完成后,需要部署到 Linux 云服务器运行。 相比其他语言,Go 具有较好的部署优势: 支持交叉编译,可以在 Windows 环境生成 Linux 可执行文件 编译后生成单个二进制文件 不依赖额外运行环境,上传即可运行 本文记录我的 RAG 知识库项目从本地开发到 Linux 云服务器部署的完整流程。 2. Go 项目交叉编译由于本地开发环境为 Windows,而云服务器通常为 Linux,因此需要进行交叉编译。 编译命令(这个就在vscode里面的终端就行了)Windows PowerShell: 12345$env:CGO_ENABLED=0$env:GOOS="linux"$env:GOARCH="amd64"go build -o rag main.go 参数说明: 参数 作用 CGO_ENABLED=0 关闭 CGO,生成纯 Go 静态编译程序,减少运行环境依赖 GOOS=linux 指定目标操作系统为 Linux ...
字节飞书后端一面凉经
字节飞书后端一面凉经(其实这是我第一次的面试,说出来都有点让人发笑,前面从来没有面试过)一共面了40分钟左右,感觉自从那个项目了里面的没回答好,我就感觉要寄了 一、项目深挖:RAG知识库系统架构、流程、踩坑问题 整体架构与运行流程 我的 RAG 系统分为 文档接入层、文本处理层、向量存储层、缓存加速层、检索问答层 五层: 文档接入:支持多格式文档上传,解析 PDF、Word、TXT 文本内容; 文本预处理:清洗无效字符、分段、分块切片,避免上下文过长; 向量化:调用 Embedding 模型将文本块转为向量; 持久化存储:向量存入向量数据库,原始文档信息、文档状态、热点检索数据缓存到 Redis; 检索问答:用户提问 -> 问题向量化 -> 相似度检索 TopK -> 拼接上下文 -> LLM 生成答案返回。 核心踩坑问题(多文档 覆盖问题) (我本来要说的遇到的问题,脑子一短路说到redis覆盖了,我真是一个sn)问题现象:多文档连续上传,新文档缓存直接覆盖旧文档缓存,导致旧文档检索失效、问答只能命中最新一篇文档。问题根因: 原代码: 123456...
go语言实现调用大模型api的流式和非流式输出
Go 手写 HTTP 调用 DeepSeek API:从非流式到流式输出 无需 SDK,只用 Go 标准库,搞清楚 LLM API 通信的全部细节。 为什么要手写 HTTP?现在 Go 生态里调用 LLM API 有很多现成的 SDK,比如 go-openai、字节的 Eino,一个比一个方便。 但 SDK 把底层细节全藏起来了——请求头怎么拼?流式数据 SSE 怎么解析?stream: true 和 stream: false 返回的 JSON 结构到底差在哪? 这篇文章就是要把这些都拆开看,用 Go 标准库从零写一个 DeepSeek API 的流式聊天客户端。 项目结构1234api_study/├── body.go # 请求体 & 数据结构定义├── bearer.go # API 认证 Header & 端点└── main.go # 主逻辑 三个文件,不到 120 行代码,拒绝过度设计。 第一步:定义数据结构(body.go)DeepSeek API 是 OpenAI 兼容的,请求体格式长这样: 123456789...
重构一下扫描器里面的gin框架
重构我的sma11sCan项目 里面的Gin 框架:从”能跑”到”能用” 项目地址:github.com/shen060606/sma11sCan/tree/master 最近把自己写的一个端口扫描工具做了工程化改造。原来 Gin API 层所有的代码都塞在一个 main.go 里,没有中间件、没有统一的响应格式、没有优雅关闭,属于典型的”Demo 级别”代码。这篇文章记录一下改造的思路和具体做法。 改造前的样子改造前只有一个 210 行的 cmd/sma11scan-api/main.go,里面塞了: 路由注册 三个 handler 函数(首页、扫描、历史查询) 扫描业务逻辑(CIDR 扫描、单 IP 扫描) 请求参数绑定和响应 所有东西混在一起,加一个新接口都不知道往哪塞。 核心问题就四个: 路由和 handler 魔术胶水粘在一起,代码组织没有章法 没有中间件,日志全靠 fmt.Println,panic 了前端拿到的是一段看不懂的纯文本 每个接口返回的 JSON 结构都不一样,前端要写一堆 if/else 来判断 r.Ru...
gorm使用检索
Go GORM 完整使用教程(对比原生 SQL)一、原生 database/sql 基础回顾1. 初始化数据库连接go 运行 123456789import ( "database/sql" _ "github.com/go-sql-driver/mysql")// DSN格式:用户名:密码@tcp(IP:端口)/数据库名dsn := "root:root@tcp(127.0.0.1:3306)/dorm"db, err := sql.Open("mysql", dsn) 2. 连通性校验go 运行 12345err = db.Ping()if err != nil { panic("数据库连接失败")} 3. DML 操作(增删改)使用 Exec(),返回受影响行数、自增 ID go 运行 12res, err := db.Exec("INSERT INTO user(name) VALUES(?)", &q...
Go 语言开发的资产探测器 sma11sCan
sma11sCan:基于 Go 的高并发端口扫描与资产探测工具开发记录最近用 Go 写了一个安全工具项目:sma11sCan。 这是一个偏命令行风格的资产探测工具,第一版主要聚焦在端口扫描、Banner 抓取、HTTP 探测、Web 指纹识别、Favicon 识别、服务识别、子域名收集、CDN 检测以及源站 IP 找回这些能力上。 这一版还没有接入 Gin,也没有做 Web API、任务队列、MySQL 入库、Redis 缓存这些后端平台化能力。它更像是一个单机 CLI 工具:用户通过命令行传入目标,程序完成扫描、探测、识别并在终端输出结果。 项目地址: 1https://github.com/shen060606/sma11sCan 一、为什么写这个工具一开始写这个项目的原因很简单:想把平时学到的一些安全开发能力串起来。 单独写一个端口扫描器并不难,单独写一个 HTTP Title 获取器也不难,单独做 CNAME 判断 CDN 也不复杂。但是如果把这些能力组合起来,就会涉及到很多工程问题: 比如: 12345671. 如何控制扫描并发,避免 goroutine 无限增长?...
vscode的claude code插件使用deepseekV4模型
前言Claude Code 插件默认走 Anthropic 的模型,但如果你想换成 DeepSeek V4 降低成本,这篇就是一份实操笔记,涵盖从配置到踩坑的全过程。 下载插件首先,打开 VS Code 的插件市场,搜索 “Claude Code for VS Code”,找到并安装它。 配置插件点击vscode左下角的设置小齿轮,选择Extensions,找到Claude Code,点击Settings json按钮,将以下内容粘贴进去。 12{"name": "ANTHROPIC_BASE_URL","value": "https://xxxx"},{"name": "ANTHROPIC_AUTH_TOKEN","value": "xxxx"} 下载CC SwitchCC Switch 是一个开源的桌面 GUI 工具,专门用来管理 Claude Code 的配置。它的核心作用是...
信息搜集扫描
一、先用enscan扫一下资产信息,把扫出来的ip给eeyes来看看哪些ip是真实ip(把enscan改成enscan-v2.0.5-windows-amd64.exe) 单企业溯源(查备案、子域、关联资产) 基础企业搜索enscan -n 字节跳动 指定域名反查企业enscan -d bytedance.com 导出结果到 txtenscan -n 字节跳动 -o result.txt2. 批量域名 / 企业扫描 批量读取域名列表扫描enscan -f domain.txt -o out.txt 查关联APP、公众号、备案全套enscan -n 某某科技公司 -full 最常用:enscan-v2.0.5-windows-amd64.exe -n 网易xxxx 二、eeyes把escan扫出来的ip域名复制到一个新的txt文件里面命名为url.txt,然后把开头 的域名两个字删了保存,扫出来无cdn资产和真实ip以及c段,,可以把回显去提取ip的页面来提取ip(https://uutool.cn/extract-ip/) 本地域名列表 扫真实 IP、cdn 甄别(...
