首页 文章 精选 留言 我的

精选列表

搜索[声明式模型],共10000篇文章
优秀的个人博客,低调大师

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

每周完成一个 ARTS: 至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tips、Share 简称 ARTS) ## Algorithm [LeetCode 155. 最小栈](https://leetcode.cn/problems/min-stack/description/) ![image-20260906012935120](https://developer.qcloudimg.com/http-save/10394799/e07870da42351bce18aeb937f201f50a.png) **第一版:单个 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): ![image-20260906185938374](https://developer.qcloudimg.com/http-save/10394799/204714dfaf6bc3ed417f6cb91d2a514e.png) ## 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 本身是中性的,关键在于我们怎么选。与其被动等待被颠覆,不如主动设计规则让技术为更多人服务。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册