ARTS 0906: 辅助栈记录每层最小值、OSI 模型从未真正落地与与其被动等待被颠覆不如主动设计规则
每周完成一个 ARTS: 至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tips、Share 简称 ARTS) ## Algorithm [LeetCode 155. 最小栈](https://leetcode.cn/problems/min-stack/description/)  **第一版:单个 minIndex** 最开始的想法是用一个 `minIndex` 记录当前最小值在 list 中的下标。push 的时候比较并更新 minIndex,getMin 直接通过 minIndex 取值。 问题:pop 的时候如果弹出的恰好是最小值,就需要重新遍历/排序找新的最小值,做不到 O(1)。 而且只记录「倒数第二小」也不够,连续 pop 多次,每次弹出的都可能是当前最小值,需要第三小、第四小……本质上需要记住**每一层**的最小值。 **第二版:辅助栈** 用一个辅助栈 `minStack`,和主栈同步 push/pop。`minStack` 每一层存的是「从栈底到当前这一层为止的最小值」。这种方式是我问 AI 才知道的,随然多了一个 ArrayList 但是 push 和 getMin 都是 O(1) | 操作 | 主栈 `stack` | 辅助栈 `minStack` | | ---------- | -------------- | ----------------- | | `push(5)` | `[5]` | `[5]` | | `push(3)` | `[5, 3]` | `[5, 3]` | | `push(7)` | `[5, 3, 7]` | `[5, 3, 3]` | | `push(1)` | `[5, 3, 7, 1]` | `[5, 3, 3, 1]` | | `pop()` | `[5, 3, 7]` | `[5, 3, 3]` | | `getMin()` | — | 栈顶 = `3` ✓ | 关键:push 时辅助栈压入 `min(新值, minStack 栈顶)`;pop 时两个栈一起弹;getMin 直接读辅助栈栈顶。 最终代码: ``` import java.util.ArrayList; class MinStack { private final ArrayList stack; private final ArrayList minStack; public MinStack() { stack = new ArrayList<>(); minStack = new ArrayList<>(); } public void push(int value) { stack.add(value); if (minStack.isEmpty() || value ``` 按 `i` 进入编辑模式,将目标提交前的 `pick` 改为 `edit`,按 `Esc` 输入 `:wq` 保存退出(同 Vim 逻辑)。若仅修改提交信息,直接执行 `git commit --amend`。 3、修改文件内容(如删除不必要的信息等),修改完成后重新提交(也可直接在 IDE 中操作): ``` git add . git commit --amend ``` 4、继续执行后续 rebase 流程: ``` git rebase --continue ``` 5、强制推送到远程(使用比 `--force` 更安全的 `--force-with-lease`): ``` git push --force-with-lease ``` 6、若推送遇到登录认证失败,使用 `gh` 唤起浏览器完成授权: ``` gh auth refresh -h github.com ``` 7、查看 GitHub 登录状态,确认登录成功: ``` gh auth status ``` 2)不让 Cursor 进行 commit 的时候携带上 "Co-authored-by" 信息,之需要修改配置(取消这个 Commit Attribution):  ## Share 文章:https://www.gatesnotes.com/a-turbulent-ai-era-and-critical-choices-to-make Bill Gates 在 2026 年 8 月发表了这篇长文,核心论点是:AI 有可能成为「有史以来最伟大的均衡器」,但前提是我们现在就做出正确的选择。 Gates 对 AI 的态度始终是乐观的。他看好 AI 在医疗、教育、农业、清洁能源和科学研究等领域的巨大潜力,认为 AI 能让优质资源触达更多人。但这次他的语气比以前更务实——他第一次表示希望技术的发展速度能稍微慢一点,给社会留出准备时间。 文章最有价值的部分是他提出的几个建设性方案: 1. **「人类保留」岗位**:在医疗护理等需要人类情感和判断力的领域,应该有意识地保留人类角色,而不是全部交给 AI。 1. **治理框架**:呼吁建立新的国内和国际组织来管理 AI 风险,没有全球框架的话贫富差距只会加大。 1. **经济政策**:讨论了对 AI 和机器人征税的可能性,用来缓解大规模自动化带来的社会冲击。 这篇文章不是在贩卖焦虑,而是在说:AI 本身是中性的,关键在于我们怎么选。与其被动等待被颠覆,不如主动设计规则让技术为更多人服务。