ARTS 0906: 辅助栈记录每层最小值、OSI 模型从未真正落地与与其被动等待被颠覆不如主动设计规则

简介: 每周完成一个 ARTS: 至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tips、Share 简称 ARTS)## Algorithm[LeetCode 155. 最小栈](https://leetcode.cn/problems/min-stack/descript

每周完成一个 ARTS: 至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tips、Share 简称 ARTS)

Algorithm

LeetCode 155. 最小栈

image-20260906012935120

第一版:单个 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<Integer> stack;
    private final ArrayList<Integer> minStack;

    public MinStack() {
   
        stack = new ArrayList<>();
        minStack = new ArrayList<>();
    }

    public void push(int value) {
   
        stack.add(value);
        if (minStack.isEmpty() || value <= minStack.get(minStack.size() - 1)) {
   
            minStack.add(value);
        } else {
   
            minStack.add(minStack.get(minStack.size() - 1));
        }
    }

    public void pop() {
   
        stack.remove(stack.size() - 1);
        minStack.remove(minStack.size() - 1);
    }

    public int top() {
   
        return stack.get(stack.size() - 1);
    }

    public int getMin() {
   
        return minStack.get(minStack.size() - 1);
    }
}

复杂度:

  • 时间:push / pop / top / getMin 全部 O(1)
  • 空间:O(n),辅助栈和主栈等长

需要注意的点:

  1. push 时先 add 再更新 minIndex(顺序反了会导致 index 指错)
  2. pop 时注意 remove 之后 size 已经变了,不要用变化后的 size 去操作另一个栈
  3. 单个 minIndex 方案在 pop 最小值时需要重新遍历,无法做到 O(1)

Review

文章:https://www.practicalnetworking.net/stand-alone/the-truth-about-the-osi-model/

文章指出 OSI 模型从未在实际网络中被广泛使用,当年因委员会争论过多而迟迟无法落地,反而是更简洁的 TCP/IP 模型先行投产并成为事实标准。但 OSI 作为教学工具仍有价值,关键在于教法要对:应把每一层看作「抽象层」,关注其承担的职责(如 L3 负责端到端、L4 负责服务到服务),而不是死记硬背层名和定义。各职责之间并非严格按层序执行,实际协议中顺序可能交叉。作者建议未来全面转向 5 层 TCP/IP 模型,但现阶段教育和认证体系仍绑定 OSI,短期内难以脱离。

Tips

1)修改 commit 信息

1、查看提交历史,找到需要修改的 commit 的前一个 commit id:

git log

2、执行交互式 rebase 进入编辑:

git rebase -i <commit-id>

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 <remote> <branch>

6、若推送遇到登录认证失败,使用 gh 唤起浏览器完成授权:

gh auth refresh -h github.com

7、查看 GitHub 登录状态,确认登录成功:

gh auth status

2)不让 Cursor 进行 commit 的时候携带上 "Co-authored-by" 信息,之需要修改配置(取消这个 Commit Attribution):

image-20260906185938374

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。
  2. 治理框架:呼吁建立新的国内和国际组织来管理 AI 风险,没有全球框架的话贫富差距只会加大。
  3. 经济政策:讨论了对 AI 和机器人征税的可能性,用来缓解大规模自动化带来的社会冲击。

这篇文章不是在贩卖焦虑,而是在说:AI 本身是中性的,关键在于我们怎么选。与其被动等待被颠覆,不如主动设计规则让技术为更多人服务。

目录
相关文章
|
2天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1093 0
|
11天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3659 3
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
23天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13401 93
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
16天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1915 5
|
9天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。
|
12天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
17天前
|
人工智能 Java BI
【AI】DeepSeek Harness 安装、运行、管理插件
本文介绍了如何运行DeepSeek开源的Agent框架DeepSeek Harness(dsh)。主要内容包括:使用nvm安装适配的Node版本;通过代理加速克隆GitHub源码;使用pnpm安装依赖并启动项目;配置DeepSeek API Token;安装扩展功能的插件。该框架自带Web界面,支持模型适配、文件编辑等插件化功能
2157 1