自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 收藏
  • 关注

原创 音乐缓存管理器的性能优化方法分析

音乐播放性能优化

2025-04-01 18:29:00 244

原创 深入探索 iOS 卡顿优化

iOS卡顿优化

2025-03-30 21:11:50 1167 1

原创 iOS GCD

iOS GCD

2025-03-30 16:20:18 911

原创 iOS常见网络框架

iOS常见网络框架

2025-03-26 21:40:42 732

原创 iOS多线程

iOS多线程

2025-03-25 22:10:06 555

原创 歌曲缓存相关功能

通过这样的设计,音乐缓存系统能够有效提升音乐播放的流畅度,减少网络请求,优化用户体验。:当缓存超过最大限制时自动触发清理,基于LRU(最近最少使用)算法清理旧文件。:每个音乐文件使用唯一的缓存键(歌曲ID_标题.mp3)进行存储。:播放时优先使用缓存文件,无缓存时从网络加载并同时进行缓存。配置,忽略系统代理设置提高下载速度,设置合理的超时时间。下载音乐文件,下载完成后将临时文件移动到缓存目录。:用于下载音乐文件,配置忽略系统代理设置。:确保全局只有一个实例,方便管理。:判断文件是否已缓存。

2025-03-25 21:47:12 835

原创 HandyJSON原理

HandyJSON原理

2025-03-24 21:43:41 963

原创 力扣146. LRU 缓存

【代码】力扣146. LRU 缓存。

2025-03-24 15:30:27 97

原创 OAuth2.0与谷歌登录

举一个生活中的例子,比如一个小区拥有门禁,而快递员需要进入小区,快递员每次进入小区都需要输入密码,但我又不能把密码告诉快递员,因为我不想给他随时进入小区的权限,现在怎么办呢?有没有一种办法,让快递员能够自由进入小区,又不必知道小区居民的密码,而且他的唯一权限就是送货,其他需要密码的场合,他都没有权限?于是,我设计了一套授权机制。第一步,门禁系统的密码输入器下面,增加一个按钮,叫做"获取授权"。快递员需要首先按这个按钮,去申请授权。

2025-03-20 22:44:18 499

原创 RunLoop

•何时使用 RunLoop 常驻线程当需要线程复用或持续监听事件(如 Timer、自定义事件源)时。•何时使用 GCD对于大多数异步任务(如网络请求、文件读写),优先使用或。•注意事项避免滥用常驻线程,不当的RunLoop管理可能导致线程泄漏或性能问题。

2025-03-13 18:55:50 717

原创 歌词相关实现

为什么不二分Ovo

2025-03-12 23:09:12 219

原创 代理(Delegate)、闭包(Closure)、Notification(通知中心) 和 swift_event_bus适用场景和工作方式

在 Swift 开发中,在 Swift 开发中,代理(Delegate)、闭包(Closure)、Notification(通知中心) 和 swift_event_bus 主要用于。代理对象(即最后设置的那个),所以如果 PlaylistViewController 先设置了代理,而 HomeViewController 后设置代理,就会覆盖之前的代理。​ • 类似 NotificationCenter,但更轻量级,支持异步和线程调度。​ • 可能导致代码难以跟踪,容易造成资源泄漏(监听后需移除)。

2025-03-11 22:07:59 854

原创 使用Kingfisher加载网络图片时使用indicatorType产生布局混乱

使用Kingfisher加载网络图片时使用indicatorType产生布局混乱

2025-03-06 22:25:01 238

原创 ViewController 生命周期

默认会从 Storyboard/XIB 加载,若手动编码布局视图,可重写此方法(但需谨慎)。适合需要精确布局后的操作(如动态计算控件位置)。⚠️ 此时视图尚未创建,避免操作视图。触发(如旋转屏幕、约束变化)。对象内存分配后调用,用于。适合在布局计算前做微调。调用,此时可获取准确的。

2025-03-04 18:53:50 444

原创 通用网页视图控制器

通用网页视图控制器

2025-02-28 17:11:20 311

原创 轮播图Cell没有正确布局

轮播图没有设置正确布局

2025-02-24 22:20:25 212

原创 Moya 网络框架

Moya网络框架

2025-02-16 22:20:42 589

原创 使用QMUI实现用户协议对话框

使用QMUI实现用户协议对话框

2025-02-02 23:28:26 508

原创 封装常用控制器

封装常用控制器

2025-02-02 20:13:56 546

原创 TangramKit

TangramKit布局

2025-01-22 05:13:30 1006

原创 天气app的收获

完整的步骤包括:​ 1. 导入 CoreLocation 框架。​ 2. 创建 CLLocationManager 实例。​ 3. 在 Info.plist 配置权限描述。​ 4. 在代码中请求位置权限。​ 5. 设置代理,监听位置更新。​ 6. 处理位置更新和错误。需要注意的是,我们在获取了当前位置的信息后,需要手动停止相关的调用。​ 1.

2025-01-10 21:36:44 755

原创 [NOIP2017]逛公园

考虑dp,dp[i][j]表示到 i 个点,最短路比当前长 j 的方案数,因为正向dp转移考虑比较困难,考虑记忆化搜索,当前点的贡献等于后继所有节点的贡献相加。最后注意存在0环的情况,即这种情况方案数无限多,那么什么时候会出现这种情况,当我们进行dfs时,对于一个相同的状态在标记之后再遇见一次,那么此时就代表遇见了零环。

2024-10-16 17:07:16 285

原创 bitset优化传递闭包

【代码】bitset优化传递闭包。

2024-10-16 08:58:14 315

原创 abc371 f 线段树

abc371 F线段树

2024-10-10 19:14:05 290

原创 abc374 G最小可相交路径覆盖

对于最小可相交路径覆盖,每个点的前驱节点和后继节点的个数不在保证至多为1,所以我们需要先进行一遍传递闭包,例如a->b->c->d,我们对于中间的不关心,我们只关心最终的结果,即a可以到达d,中间的过程我们不关心,因为可以重复覆盖。由此就转化为了最小不相交路径覆盖问题。的边,这样是不可行的,有以下反例:ab,bc,ac,如果我们按照上述进行建图,我们最终得到的答案为1,因为我们只需要一个abc的字符串即可,但对于字符串ac,其并没有作为子串进行出现。对于建图,我们不能将字母和字母之间直接建图,例如。

2024-10-09 16:50:31 452

原创 Codeforces Round 974 (Div. 3) D,H,G

给定m个区间,q个查询,每次给出一个区间,求给定区间和m个区间的交集个数。分层图,对于这种同时出发相遇求最小时间的跑两边最短路,然后枚举相遇点即可。使用前缀和预处理,记录以左端点开头的和以右端点结尾的区间个数即可。本质上是求区间内数的出现次数是否均为偶数次,莫队即可。

2024-09-24 21:22:56 347

原创 牛客周赛 Round 59 F范德蒙卷积

距离子序列串的结尾的距离也为 x,那么在给的原串中,代表我们可以在前 i-1 位选择 x 个,在后 n-j 位选择 x 位,那么我们总共需要枚举 i ,j ,x,这样时间复杂度。作为子序列中的两个对称位置,其在多少个字符串中出现过,显然,若。思路:对于计数问题,考虑两个数对于答案的贡献,考虑。距离子序列字符串s的首位距离为 x, 那么。,考虑优化,那么使用范德蒙卷积即可。

2024-09-09 19:54:25 386

原创 Codeforces Round 957 (Div. 3) D,F

很容易想到和因数方面的内容有关,我们使用set去存,因为去重的原因,再加上数据范围最多就只有1e5,所以次数必然不会很多,所以注意一些剪枝然后暴力跑即可。很容易想到dp,对于dp的转移方程也比较好写,当前点只能从当前点前面m个点转移过来,那么思考转移的条件,对于前面的点。同时要注意初始化的问题,因为0和n+1都是存在的点,所以不妨将其都设置为木头即可。不相邻,那么不能进行转移,如果相邻,则可以转移,如果。是木头,那么也可以进行转移。

2024-07-14 15:33:34 552

原创 Codeforces Round 797 (Div. 3) F. Shifting String

图论排列置换环

2024-07-14 15:20:32 214

原创 Codeforces Round 925 (Div. 3) D-F

你有两个整数xy和一个长为n的数组a。你需要求出有多少个正整数对ij1≤ij≤nai​aj​xai​−aj​yt组数据,1≤t≤1041≤n≤2×105∑n≤2×1051≤ai​xy≤109。

2024-07-09 21:24:02 855

原创 Codeforces Round 954 (Div. 3) F. Non-academic Problem

思路:考虑缩点,因为是无向图,所以双连通分量缩完点后是一棵树,我们去枚举删除每一条树边的答案,然后取最小值即可。

2024-07-09 21:10:25 322

原创 线段树单点修改的应用

思路:对初始状态进行建树,然后这题就相当于查询第一个合法的位置,并且对其值进行修改,整个题目要求维护的是区间最大值,很显然可以使用线段树。

2024-06-23 15:03:54 173

原创 树状数组维护区间种类数

HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。

2024-06-23 14:59:40 686

原创 线段树加乘维护区间和,区间平方和

【代码】线段树加乘维护区间和,区间平方和。

2024-06-22 18:37:07 230

原创 二分答案思想下的二进制问题

二进制

2024-05-28 22:08:50 1171

原创 Codeforces Round 946 (Div. 3)

Codeforces Round 946 (Div. 3)

2024-05-21 03:31:54 1593

原创 GDCPC2023 B,F

GDCPC B(DP),F(数据结构)

2024-05-20 20:33:08 947

原创 2-SAT问题

2-sat问题

2024-05-18 11:03:27 1169

原创 牛客练习赛125 D 扫描线

最后因为要对每种颜色进行维护,所以需要开1e5数量级别的线段树,这里有两种方法,第一种是动态开点,第二种则是只用建一次树,然后每次对使用了节点进行清空即可。

2024-05-18 10:32:03 326

原创 trie树

字典树:普通字典树用于维护字符串相关信息。

2024-05-08 11:14:54 678

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除