欢迎使用 LeetCode APL 解法集!本指南将帮助你快速上手。
-
查看完整题目列表
- 访问 PROBLEMS_INDEX.zh-CN.md
- 浏览所有可用题目
-
点击感兴趣的题目
- 每个题目都有独立的页面
- 包含详细的 APL 解法和解释
-
切换语言
- 每个页面顶部有 7 种语言选择
- 点击即可切换
# 克隆仓库
git clone https://github.com/wmh/leetcode-apl-solutions.git
cd leetcode-apl-solutions
# 使用你喜欢的 Markdown 阅读器
# 例如 VS Code, Typora, 或命令行工具| 符号 | 说明 | 示例 |
|---|---|---|
⍵ |
右参数 (omega) | {⍵+1} 表示加 1 |
⍺ |
左参数 (alpha) | {⍺+⍵} 表示相加 |
⌽ |
反转 | ⌽1 2 3 → 3 2 1 |
≠ |
异或 (XOR) | 1≠1 → 0 |
/ |
归约 | +/1 2 3 → 6 |
⍸ |
找位置 | ⍸1 0 1 → 0 2 |
TwoSum ← {
⍝ ⍺: 目标和, ⍵: 数组
indices ← ⍸⍺=+/∘.,⍨⍵
2↑indices
}
⍝ 使用
9 TwoSum 2 7 11 15 ⍝ 结果: 0 1解释:
∘.,⍨⍵- 创建数组与自身的外积+/- 对每对求和⍺=- 找出等于目标的位置⍸- 获取这些位置的索引2↑- 取前两个元素
- 访问 TryAPL.org
- 复制题目中的 APL 代码
- 粘贴到在线编辑器
- 按
Ctrl+Enter运行
# 从官网下载并安装
# https://www.dyalog.com/download-zone.htm# macOS
brew install gnu-apl
# Ubuntu/Debian
sudo apt install gnu-apl
# 运行
apl每道题目包含:
- 问题陈述
- 输入输出说明
- 约束条件
⍝ 完整的可运行代码
⍝ 包含注释说明- 算法思路
- APL 特性说明
- 为什么这样写
- 时间复杂度: O(n)
- 空间复杂度: O(1)
- LeetCode 原题
- APL Wiki 文档
- 在线练习环境
- 阅读 APL Wiki
- 在 TryAPL.org 练习基本操作
- 学习常用符号(⍵, ⍺, ⌽, /)
从简单难度开始:
尝试更复杂的算法:
- 动态规划题目
- 数组操作题目
- 字符串处理题目
挑战高难度问题:
- 图算法
- 高级数据结构
- 优化问题
A: APL 是为数组操作设计的,很多复杂操作都有内置的简洁表达方式。
A: 不需要!大多数 APL 编辑器都支持键盘映射:
- Dyalog APL: 按
`然后按字母 - 在线编辑器: 右侧有符号面板
A: APL 更多是学习工具,帮助理解算法的数学本质。在金融、科学计算领域有应用。
A: 这些是教育性质的示例代码。使用前建议在 APL 解释器中测试验证。
想要添加新题目?
- 阅读 HOW_TO_ADD_PROBLEMS.md
- 创建题目的 JSON 文件
- 运行生成脚本
- 提交 Pull Request
- r/apljk - APL Reddit 社区
- APL Orchard - Stack Exchange 聊天室
如果觉得这个项目有帮助,请:
- 给仓库点个 Star ⭐
- 分享给其他人
- 提交你的 APL 解法
- 报告问题或建议
开始你的 APL 学习之旅! 🎉
从 题目索引 选择一道题目开始吧!