- 博客(75)
- 收藏
- 关注
原创 每日算法 -【Swift 算法】实现有效括号匹配算法
利用栈结构,匹配括号问题的思路十分清晰,且效率高。Swift 中数组可以很好地模拟栈的行为,使用append入栈,removeLast出栈。掌握这种算法思路,对于解决类似括号匹配、表达式计算等问题非常有帮助。也欢迎留言交流,分享你的解法和思路。
2025-06-11 17:25:30
121
原创 每日算法 -【Swift 算法】删除链表的倒数第 N 个结点
本题的关键是利用「快慢指针」制造一个 n 的间隔,从而一次遍历完成删除。dummy虚拟头节点的使用非常重要,它可以统一处理删除头节点等特殊情况。这是一个链表基础题,在很多复杂链表题中都可以看到它的身影。这类经典题不求一眼秒杀,但一定要做到思路清晰、代码简洁,熟练掌握双指针技巧是关键。
2025-06-10 14:41:02
274
原创 每日算法 -【Swift 算法】四数之和(4Sum)题解
✅ 如果数组元素个数小于4,直接返回空数组✅ 所有下标访问如都保证在范围内✅ 使用剪枝提前终止无效循环,避免访问非法索引✅ 双指针跳过重复值,避免重复答案本题是排序 + 双指针 + 去重的典型应用。适当的剪枝与越界处理可以显著提升代码鲁棒性。若需要拓展到kSum问题(如 5Sum、6Sum),可采用递归方法,递归层数为k-2,最后双指针处理。
2025-06-10 14:33:15
156
原创 每日算法 -【Swift 算法】电话号码字母组合
本题是典型的回溯应用,适合练习组合类题目。对0和1的处理需特别注意。实际应用中也非常有参考价值。guard!return。
2025-06-06 15:04:31
441
原创 每日算法 -【Swift 算法】三数之和最接近目标值
在算法学习过程中,经典的“三数之和”系列题目是很多人通往进阶路上的一道坎。今天我们来介绍其中一个非常实用的变种问题 ——,并使用实现一个高效的解法。
2025-06-05 16:32:00
405
原创 每日算法 -【Swift 算法】三数之和
本题考察的是数组排序 + 双指针技巧。核心是合理处理重复元素,避免重复解。时间复杂度为 O(n²),在面试中属于经典问题,建议掌握。你也可以在评论区分享你遇到的变体,我来帮你一起解答!
2025-06-04 11:18:02
366
原创 每日算法 -【Swift 算法】查找字符串数组中的最长公共前缀
策略名称适合场景优点缺点横向扫描字符串之间差异较大实现简单,逻辑清晰前缀缩减较慢,效率一般纵向扫描公共前缀较短或数据量大时可提早中止,更高效代码略复杂排序法字符串数量不多且排序代价可接受实现简洁,只比较首尾两个有排序开销。
2025-06-03 10:43:12
413
原创 每日算法 -【Swift 算法】将整数转换为罗马数字
本题的核心是贪心策略:总是选用当前能减去的最大数值的罗马符号。处理好减法组合(如 IV、IX 等)是关键。Swift 实现简洁高效,时间和空间复杂度都为常数级。进一步的练习是:实现罗马数字转整数,掌握双向处理。如果你觉得这篇文章对你有帮助,不妨分享给你的 Swift 同学一起学习吧。也欢迎留言交流更多有趣的算法题目!
2025-05-30 09:45:56
737
原创 每日算法 -【Swift 算法】盛最多水的容器
本题的核心在于意识到两条边之间的水量只与短边有关,因此采用双指针、移动短边是一种非常聪明且高效的方式。这是 LeetCode 中非常经典的一道题,也能很好地锻炼你的思维方式是否具备“从整体最优转向局部策略”的能力。
2025-05-29 17:18:59
931
原创 每日算法 -【Swift 算法】正则表达式匹配:支持 `.` 和 `*`
方法时间复杂度空间复杂度是否推荐递归O(2^(m+n))O(m+n)❌动态规划O(m × n)O(m × n)✅动态规划(优化)O(m × n)O(n)✅ (进阶)正则库调用❌(不符合题意)动态规划是解决字符串匹配类问题最稳定的武器,核心在于定义合理的状态和转移关系,写对了就赢了!
2025-05-28 17:10:59
537
原创 每日算法 -【Swift 算法】实现回文数判断!
所谓回文数,就是从左往右读和从右往左读都一样的整数。✅121是回文数❌-121不是(因为多了一个负号)❌10也不是(正着 10,反着 01)方法原理性能推荐指数方法一数学反转一半高效🚀 面试推荐方法二字符串反转比较中等🌱 入门推荐👋 好啦,今天这道题算是轻松一下。如果你还没刷过这题,可以马上写一写,试试两种方法谁更快。以后我们继续攻克更多有趣的算法题,一起进阶!如有疑问欢迎评论区一起交流~🙂。
2025-05-27 15:00:51
397
原创 每日算法 -【Swift 算法】字符串转整数算法题详解:myAtoi 实现与正则表达式对比
正则版本简洁明了,适合快速提取符合格式的数值,但失去对每一步细节的掌控,不能做过细的错误处理和越界防护(比如字符级别的回退分析)。是一道考察字符串解析与边界处理的题目。这道题虽看似简单,但处理细节相当复杂。我们将使用 Swift 语言实现一个。函数,并分析其实现逻辑,同时引入正则表达式方式作对比,加深理解。练习题 2:mySciToDouble —— 解析科学计数法字符串。练习题 1:myAtof —— 字符串转浮点数(小数)LeetCode 上的经典算法题。
2025-05-26 16:05:36
701
原创 每日算法 -【Swift 算法】反转整数的陷阱与解法:Swift 中的 32 位整数处理技巧
这道题不光考察了基本的数学操作,还测试了你对 整数范围和边界条件的敏感性,是许多面试官非常喜欢的一道算法题。通过合理的判断条件,我们可以在不使用任何 64 位数据类型的情况下,完成这个操作,符合题目所有要求。
2025-05-23 17:05:14
481
原创 每日算法 -【Swift 算法】Z 字形变换(Zigzag Conversion)详解与实现
方法易读性实现难度性能推荐场景按行构建✅ 高⭐⭐✅ 优新手友好,适合面试索引模拟周期⭐ 中⭐⭐⭐✅ 优偏数学推理,适合进阶。
2025-05-22 17:48:42
464
原创 每日算法 -【Swift 算法】寻找字符串中最长回文子串(三种经典解法全解析)
算法时间复杂度空间复杂度实现难度适用场景中心扩展法O(n²)O(1)⭐⭐ 易面试首选,简洁实用动态规划O(n²)O(n²)⭐⭐⭐ 中等适用于变种题型马拉车算法O(n)O(n)⭐⭐⭐⭐ 高性能关键、竞赛场景。
2025-05-21 18:00:01
411
原创 每日算法 -【Swift 算法】寻找两个有序数组的中位数(O(log(m+n)))详细讲解版
寻找两个有序数组的中位数,是 LeetCode 上非常经典的一道题,难度为 困难(Hard),但它的本质是一个 二分查找 的变形应用。给定两个正序(从小到大)排列的数组 和 ,要求在 不合并数组 的前提下,找出它们的中位数,并且时间复杂度必须为 O(log(m+n))。示例 2:⚠️ 暴力解法(不推荐)直接合并两个数组然后排序,再取中位数,这种做法时间复杂度是 O(m+n),不满足题目要求。✅ 二分查找解法(推荐)我们要寻找的是第 小的数,而中位数正是数组中间的那个数。所以我们把问题转化
2025-05-20 15:40:08
423
原创 每日算法 -【Swift 算法】不含重复字符的最长子串:暴力解法 vs 滑动窗口
暴力解法易于理解但性能差,仅适用于小规模数据。滑动窗口算法利用哈希表快速判断重复字符,大幅提升效率。本题是滑动窗口技巧的典型应用,适合入门字符串处理优化技巧。👨💻 喜欢这类解题解析?关注我带你继续刷题与优化思路!
2025-05-19 15:18:11
332
原创 每日算法 -【Swift 算法】链表版两数相加 —— 简单易懂讲透它!
知识点说明链表遍历两个链表一起遍历处理进位每次相加后都要考虑进位虚拟头节点让链表插入操作更方便链表节点为 nil 时当 0 处理避免越界时间 & 空间复杂度👉这道题,其实就是「模拟手算加法」+「链表遍历」的结合。逆序排列正好符合我们从低位加起的习惯,代码写出来一看就明白!
2025-05-16 17:43:18
363
原创 每日算法 -【Swift 算法】Two Sum 问题:从暴力解法到最优解法的演进
解法时间复杂度空间复杂度特点暴力解法O(n²)O(1)简单易懂,适合初学者哈希表解法O(n)O(n)性能更高,适合大数据、面试场景。
2025-05-15 17:24:52
476
原创 Fastlane核心配置文件Fastfile介绍
每个任务称为 lane,用于处理特定的自动化工作流。例如:• 打包应用。• 上传到 TestFlight。• 发布到 App Store。• 运行测试。示例gym(scheme: "YourAppScheme") # 调用 gym 工具进行打包endscan(scheme: "YourAppScheme") # 调用 scan 工具运行测试endFastfile 支持使用 Ruby 编写自定义逻辑,以满足特定需求。条件逻辑deployelseendend循环逻辑end。
2024-11-22 16:44:59
559
原创 安装Homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 18 ms: Couldn‘t
【代码】安装Homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 18 ms: Couldn‘t。
2024-10-19 20:06:24
349
原创 flutter GetX 管理和处理依赖的生命周期与状态的方法列表
在 GetX 中,除了 Get.put() 和 Get.find() 这两个常用的依赖注入方法之外,还有其他的一些方法可以帮助我们管理和处理依赖的生命周期与状态。以下是一些常用的依赖管理方法以及它们的作用:1. Get.lazyPut()作用: Get.lazyPut() 是延迟注入依赖,只有在首次调用 Get.find() 时,才会实例化这个依赖。使用场景:当依赖的实例化过程比较复杂或消耗资源时,你可以使用 lazyPut(),这样可以等到需要的时候再去创建它,避免不必要的资源消耗。Get.
2024-09-18 11:52:31
1536
原创 iOS 应用url scheme列表
京东的 URL Scheme 是 openapp.jdmobile://。拼多多的 URL Scheme 是 pinduoduo://。你可以使用这个 Scheme 来打开拼多多应用。抖音的 URL Scheme 是 snssdk1128://。支付宝的 URL Scheme 是 alipay://。你可以使用这个 Scheme 来打开支付宝应用。微信的 URL Scheme 是 weixin://。淘宝的 URL Scheme 是 tbopen://。QQ的 URL Scheme 是 mqq://。
2024-08-22 14:20:34
3178
原创 Flutter 快捷Json转Model网站
1、https://javiercbk.github.io/json_to_dart/2、https://caijinglong.github.io/json2dart/index_ch.html
2024-07-08 17:28:35
607
原创 Flutter 去除BottomNavigationBar高亮背景及水波纹效果
【代码】Flutter 去除BottomNavigationBar高亮背景及水波纹效果。
2024-07-08 14:21:59
647
原创 Git 合并两个项目
在 Git 中合并两个项目的代码需要一些步骤,尤其是如果这两个项目有不同的版本历史或者是独立的 Git 仓库。在你的本地机器上克隆第一个项目的 Git 仓库。使用 cd 命令进入第一个项目的目录。添加第二个项目作为远程仓库: 在第一个项目中添加第二个项目的 Git 仓库地址。从第二个项目中获取代码。创建新分支: 在第一个项目中创建一个新的分支,该分支将包含第二个项目的代码。合并第二个项目的代码到新分支。这里假设 main 是第二个项目的主分支,你可以根据实际情况替换为相应的分支名。
2023-12-19 13:06:22
1075
原创 解决 友盟与阿里SecurityEnvSDK与SGMain冲突
全局搜索SecurityEnvSDK删除- framework SecurityEnvSDK。在pod install之后通过脚本删除- framework SecurityEnvSDK。
2023-12-10 12:23:16
187
原创 swift collectionView的minimumInteritemSpacing等于0时,item之间有间隙,解决方法。
有时候,如果cell的尺寸有小数部分,系统会尝试进行四舍五入,导致间隙。将丢失的像素补充到第一个cell的宽度上去。
2023-12-02 23:18:32
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人