- 博客(18)
- 收藏
- 关注
原创 hot100字串题解
这题其实从本质上就是前缀和相关的问题,根本就解法思路就是去找nums的前缀和(s(这里假设为s)),去找s[i]-s[j]==k。这题可以想象为飞机问题,乘客有视野(为自己当前位置下前方的k格),去找每个位置下视野最高山。本文记录一下子串问题的解决方法。
2026-03-11 01:28:29
41
原创 hot100移动窗口解法
本文介绍了两种滑动窗口算法应用:1. 无重复字符最长子串使用变长窗口,通过哈希数组记录字符出现次数,右指针扩展窗口,左指针在重复时收缩;2. 字母异位词搜索采用定长窗口,先统计目标词频,再滑动比较窗口词频。两种方法均使用数组而非哈希表提升效率,前者时间复杂度O(n),后者O(n+m)。
2026-03-09 20:42:03
21
原创 go中的interface
Go 中的interface是,定义了一组方法签名(只声明方法,不实现),任何类型只要实现了这组方法,就「隐式」满足该接口(无需显式声明)。底层基于「iface/eface 结构体 + 动态分派」实现,支持多态,是 Go 实现抽象、解耦的核心机制。
2026-02-27 21:54:34
734
原创 Go中的content
Go语言Context机制是用于Goroutine间传递取消信号、超时控制和请求级元数据的关键工具。它解决了多Goroutine无法优雅取消、难以统一控制超时以及避免使用全局变量传递请求数据的问题。Context提供Deadline()、Done()、Err()和Value()等核心接口,并包含Background()、TODO()等常见函数。使用时需注意:WithCancel()返回的cancel函数必须调用以避免内存泄漏;Value()仅适合传递traceID等元数据,不应传递业务参数;Backgrou
2026-02-27 20:36:42
612
原创 go中的sync包
一、介绍Go语言中的sync包提供了基本的同步原语,用于协调多个goroutine的执行。这些原语包括互斥锁、条件变量、等待组等,用于解决并发编程中的竞态条件和资源竞争问题。
2026-02-04 20:47:59
626
原创 go中的channal
本质:Channel 是一个并发安全的队列,用于在 Goroutine 之间传递数据,内置了同步和互斥机制,可自动协调发送 / 接收方的节奏。满足“不要通过共享内存来通信,而要通过通信来共享内存”的设计逻辑(csp)核心作用数据传递:安全地在 Goroutine 间传递值,避免竞态问题;同步控制:通过阻塞特性实现 Goroutine 间的同步(如等待任务完成);信号通知:用于发送信号(如关闭通知、结束信号)。qcount uint // 队列中元素数量。
2026-02-04 17:05:09
776
原创 go中切片和数组
本文主要讲一下切片,以及数组。数组在Go 中是固定长度、值类型的连续内存序列,长度是类型的一部分,一旦声明长度不可变,拷贝时会复制整个数组。数组的所有元素在内存中连续存储,每个元素占用的字节数由类型决定(如 占 8 字节, 占 4 字节)。以 [3]int{1, 2, 3} 为例(64 位系统,int=8 字节):切片(slice)切片可以看成数组的动态视图 / 引用类型,底层指向一个数组,包含「指针、长度、容量」三个字段,长度可动态扩容,是 Go 中最常用的 “动态数组”。从数据结构上看
2026-01-30 22:03:41
629
原创 2024年天梯赛
蛇语的规则是,在说一句话 A 时,首先提取 A 的每个字的首字母,然后把整句话替换为另一句话 B,B 中每个字的首字母与 A 中提取出的字母依次相同。注意:回车不算句中字符。发帖人不会做这道题,但是回帖有会做的:每一个才艺是一个技能点,一共是 30 + 35 + 42 + 46 = 153 个技能点,50 个人假设平均分配,每人都会 3 个技能那也只有 150,所以至少有 3 人会四个技能。以此类推,令 ni+1 为 ni 的各位数字的乘积,直到最后得到一个个位数 nm,则 m 就称为 n 的。
2024-04-28 17:09:04
1422
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅