练算法,也练工程。
把一切留在本地。

用 JavaScript、TypeScript 或 Python 刷力扣风格的算法题,再做工程实战:按并发度、延迟和代码质量打分的多关卡项目。全程跑在你自己的机器上。

免费且开源macOSWindowsLinux

AlgoLocal
▶ 运行TypeScript⌄
两数之和简单 · 数组 · 哈希表
有效的括号简单 · 字符串 · 栈
合并两个有序链表简单 · 链表
二叉树的中序遍历中等 · 树 · 栈
前 K 个高频元素中等 · 堆

28 道题目

TS two-sum.ts ×
1 function twoSum(nums: number[], target: number) {
2   const map = new Map<number, number>();
3
4   for (let i = 0; i < nums.length; i++) {
5     const complement = target - nums[i];
6     if (map.has(complement)) {
7       return [map.get(complement)!, i];
8     }
9     map.set(nums[i], i);
10  }
11  return [];
12 }
测试控制台

测试用例 1

测试用例 2

测试用例 3

nums = [2,7,11,15], target = 9
输出  [0,1] 通过

一次练习是
怎么进行的。

两种练法:算法题,或者多关卡的工程项目。

  1. 01

    选一道算法题,或一个工程项目

    算法题可按主题和难度筛选,工程项目分多个关卡。

  2. 02

    在真正的编辑器里写代码

    Monaco 编辑器;工程项目还带完整的文件树。

  3. 03

    在本机跑测试

    每个测试用例都通过 WASM 在本机执行。

  4. 04

    看评分结果

    算法题看用例结果;工程题还要看并发度、延迟和代码质量。

了解完整功能
AlgoLocal / 练习
function solve(input) {
  // 你的思路留在本地
  return result;
}
测试用例 1通过  ✓
测试用例 2通过  ✓
AlgoLocal / 进度
已解决12/28

继续保持。

最近 12 周

工程实战:
一关一关把系统搭起来。

每个工程项目都是一个多文件工作区,一次通一关。隐藏用例检查功能对不对,指标门槛检查跑起来什么表现——峰值并发、耗时、重试次数、重复请求,静态分析再看一遍代码本身。

  • 高可用抓取管线并发池、指数退避、缓存单飞、取消
  • 事件驱动的订单流水线事件总线、洋葱中间件、幂等、死信队列
  • 有韧性的 API 网关令牌桶、熔断器、超时预算
工程题是怎么评分的
AlgoLocal / 高可用抓取管线TypeScript⌄
1. 打通契约2. 有上限的并发3. 重试退避4. 缓存去重5. 收敛为组件
contract.tsfetcher.tspool.ts
export async function mapWithConcurrency(items, limit, worker) {
  const results = new Array(items.length);
  const size = Math.min(limit, items.length);
  // 每个槽位一个取号式的 worker
  await Promise.all(runners);
  return results;
}
本关通过10/10 个用例100
  • 峰值并发不超过 44 / 4
  • 不被下游限流0 / 0
  • 12 个请求 300ms 内跑完300ms / 300ms
生成

从一个主题到一道完整题目。

提问

在解题过程中获得上下文提示。

对比

对比多种解法和它们的复杂度取舍。

需要时用 AI。
不需要时只管专注。

生成新题、获取提示、对比解法。可以接入 DeepSeek、OpenAI、Claude、通义千问,以及任意 OpenAI 兼容端点(本地或远程),也可以用 Ollama 或 LM Studio 全部跑在自己机器上,或者完全不用。

查看 AI 配置说明
AlgoLocal / AI 助手DeepSeek⌄
当前题目

两数之和

返回数组中和等于目标值的两个数字的下标。

const complement = target - nums[i];
你的问题

给我一个提示,但不要直接说出完整答案。

想一想:只遍历数组一次时,你需要记住哪些信息?

下一步可以尝试记录每个值及其下标,再寻找它的补数。

三种语言,
一个本地运行时。

JS

JavaScript浏览器原生执行

TS

TypeScript实时转译

Py

Python通过 Pyodide 运行 CPython

无需账号,没有遥测;练习记录留在你的设备上。

下载 AlgoLocal。

免费开源,支持 macOS、Windows 和 Linux。

查看全部版本
macOS 首次打开。安装包使用 ad-hoc 签名,没有 Apple Developer ID 证书,macOS 会提示无法验证开发者。
  1. 在「应用程序」中打开 AlgoLocal,在提示框点「完成」。
  2. 进入 系统设置 → 隐私与安全性,下拉到「安全性」,点 仍要打开

在哪都能练,
断网也一样。