← 返回题库

AI 修复练习

库存幽灵订单

说出你的想法,让 AI 改代码,再用测试检查结果。

困难 · JavaScript

正在读取已保存的进度…

读取完成前暂不编辑,防止初始源码覆盖已有进度。

01 / 看懂问题

卖出 4 件,剩下的 4 件去哪了?

仓库原有 8 件商品,卖出 4 件后,本应还剩 4 件。订单乱序、重复到达后,原始程序却显示库存为 0。

原始程序显示剩余 0 件
这组订单的正确结果剩余 4 件已售出 4 件 · 无待处理预留

你的目标:让库存计算正确。可以先请 AI 找原因,再让它修复并运行测试。

02 / 告诉 AI 怎么修

用一句话,开始修复

AI 会读取代码、尝试修改,再用真实测试验证。

平台模型尚未选择模型正在检查…

正在检查 AI 连接…

你可以直接使用这条指令,也可以改成自己的想法。

检查当前源码

测试结果

尚未运行。先运行测试,看看当前代码哪里出了问题。

在浏览器中真实运行,不会调用模型或产生模型费用。公开测试通过不等于正式通关。

正式通关判定正在查询…

服务端通关判定

仅服务器保存的判题结果可确认通关。公开测试与历史通过快照仍是练习证据。

提交后会把当前 solution.js 发送给同站判题接口,并由独立隔离服务执行。隐藏输入、期望值和逐例结果不会返回浏览器。不产生排行或 XP。每人每天最多 30 次新判题,同一源码直接读取已有记录。

当前源码尚无服务端通关记录。

每一步,都能退回

查看文件检查点 · 1 个

当前源码 r0 · 原始源码

当前源码 SHA-256 · 计算中…

保存的是 solution.js 的真实内容。云端保存状态见上方;临时练习离开后会清空,不保存 Key。保留原始源码、最近通过版本及最多 40 个最近检查点;云端还受总大小限制,较旧检查点可能清理。撤回后继续编辑会分出新分支。恢复会停止正在进行的操作;历史通过记录需重新运行才能验证当前版本。

  1. r0 · 原始源码 · 当前
    查看快照内容
    function replayInventory({ stock, events, asOf }) {
      let available = stock;
      let sold = 0;
      const active = new Map();
      for (const event of events) {
        if (event.at > asOf) continue;
        if (event.type === 'reserve' && available >= event.qty) {
          available -= event.qty;
          active.set(event.reservationId, {
            reservationId: event.reservationId, qty: event.qty, expiresAt: event.expiresAt
          });
        } else if (event.type === 'commit' && active.has(event.reservationId)) {
          sold += active.get(event.reservationId).qty;
          active.delete(event.reservationId);
        } else if (event.type === 'cancel' && active.has(event.reservationId)) {
          available += active.get(event.reservationId).qty;
          active.delete(event.reservationId);
        }
      }
      for (const [id, hold] of active) {
        if (hold.expiresAt <= asOf) { available += hold.qty; active.delete(id); }
      }
      return { available, sold, active: [...active.values()].sort((a, b) =>
        a.reservationId < b.reservationId ? -1 : a.reservationId > b.reservationId ? 1 : 0) };
    }
    
运行、保存与数据说明

题目版本:inventory-ghost-v1。代码在此浏览器的独立 Worker 中,由 QuickJS / WebAssembly 执行。29 项公开测试与离线题一致;客户端结果不是服务器可信判题,不记排行或 XP。

登录后会自动保存源码、对话摘要、检查点和所选文件;临时练习不会保存。AI 修复 / 源码页签只在当前浏览器标签页中记住,刷新或返回时恢复;新会话默认打开 AI 修复。Key 与AI 设置仅在本页内存,刷新后必须重新输入并确认。启用 AI 前,需要在AI 设置中确认接收方、数据范围与费用。