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 本身是中性的,关键在于我们怎么选。与其被动等待被颠覆,不如主动设计规则让技术为更多人服务。

目录
相关文章
|
机器学习/深度学习 资源调度 程序员
PMP考试计算题专题
PMP考试计算题专题
835 0
|
7天前
|
人工智能 数据可视化 API
百炼是什么?阿里云一站式AI大模型开发与应用平台,百炼百科全解析
阿里云百炼是面向企业与开发者的AI模型服务平台,集成通义千问及DeepSeek、Kimi等主流第三方模型,提供模型调用、应用构建、知识库、定制微调等全链路能力;新用户免费领超7000万Tokens。
|
1月前
|
存储 弹性计算 人工智能
阿里云服务器价格全解析:轻量38元起、ECS云服务器99元起,按量包月包年新老用户优惠明细实操指南
对于个人开发者、小微企业以及初创团队而言,云服务器是数字化业务的基础载体,网站搭建、程序部署、AI模型调试、业务系统运行都离不开计算实例支撑。很多用户在选购云服务器的时候,最关心的就是实际价格、不同计费模式的差异,以及新老用户对应的优惠权益。市面上实例规格繁多,计费方式分为按量、包月、包年多种模式,活动特惠档位和常规原价差距巨大,如果不理清价格规则,很容易出现预算超支、选错实例规格、续费涨价等一系列问题。阿里云推出多款入门特惠实例,轻量应用服务器38元起,ECS云服务器99元起,优惠权益兼顾新用户与老用户群体。本文将完整梳理不同实例档位、计费模式、优惠明细,结合运维实操命令,讲解选型思路、成本
299 1
|
1月前
|
人工智能 自然语言处理 机器人
阿里云百炼文本生成模型解析:适合AI智能体、聊天机器人、文档处理等场景
本文介绍了阿里云百炼平台的文本大模型选型体系,针对开发者面对多类模型难以精准匹配场景的痛点展开系统解析。文章覆盖AI编程与Agent开发、通用聊天与内容生成、日常办公等主流场景的定向推荐方案,提供GPT、Claude、Gemini等主流闭源模型向百炼生态平滑迁移的对位对照表,同时拆解上下文窗口、思考模式、Function Calling、结构化输出等核心能力的选型逻辑,汇总平台核心推荐模型的能力矩阵,最终帮助开发者在不同使用强度与成本约束下,快速锁定适配自身业务的最优模型。
|
2月前
|
人工智能 API 定位技术
分不清每周出来的新模型和榜单?一文总结所有AI 模型地图:公司、赛道、演进与榜单
本文是一份AI行业全景地图,破除“参数越大越好”“开源必落后”等迷思,以四维坐标系(分层、赛道、角色、阶段)梳理2026年主流模型与技术格局,详解通用对话、推理、Agent、多模态等10大赛道代表模型,并科普各类榜单的测评逻辑与适用场景,助读者建立清醒认知框架。
418 1
|
2月前
|
人工智能 安全 API
最新版通义千问(Qwen3.8-Max)功能介绍
在人工智能大模型技术快速迭代的当下,通义千问推出的Qwen3.8-Max凭借突破性的技术架构与全面升级的能力,成为大模型领域的全新标杆。作为通义千问系列迄今规模最大、能力最强的旗舰模型,Qwen3.8-Max以2.4万亿总参数的体量,结合前沿稀疏混合专家(MoE)架构,在保持高效推理的同时,实现了文本理解、代码生成、多模态交互、长周期任务执行等核心能力的跨越式提升,为个人用户、开发者与企业级应用提供了前所未有的AI能力支撑。
670 1
|
2月前
|
存储 人工智能 前端开发
开源版"带记忆的 Claude Desktop"——我试了 Rowboat 的多 Agent 编排
Rowboat 是一款开源AI工作操作系统(Apache-2.0,TS编写),主打多Agent协同编排、本地长期记忆与自动化工作流。支持邮件处理、代码重构、会议准备等场景,所有数据存于本地Obsidian兼容知识图谱,兼顾隐私与复利式上下文积累。
245 3
|
机器学习/深度学习 人工智能 API
大模型推理服务全景图
国内大模型推理需求激增,性能提升的主战场将从训练转移到推理。
4299 152