惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
S
SegmentFault 最新的问题
V
Visual Studio Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
美团技术团队
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
量子位
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
博客园 - 叶小钗
月光博客
月光博客
P
Proofpoint News Feed
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog

魔改工程师

获取大写字母瓷砖拼出独特图案数量 - 魔改工程师 日志文件异常检测 - 魔改工程师 项目模块依赖构建顺序规划 - 魔改工程师 端口流量统计 - 魔改工程师 最大化游戏试玩资格分发 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 YOLO26改进 – 特征融合 重参数化CSPELAN模块(Reparameterized CSPELAN Module)通过结构重参数化实现高效特征提取 YOLO26改进 – 特征融合 融合Hyper-YOLO混合聚合网络MANet(Mixed Aggregation Network)通过多路径设计实现高效特征学习与模型适应性提升 YOLO26改进 – 特征融合 RepGFPN重参数化特征金字塔网络 ,实现高效多尺度特征交互与融合 YOLO26改进 – 特征融合 EFC增强层间特征相关性,通过多尺度特征交互减少冗余信息丢失即插即用 - 魔改工程师 YOLO26改进 – 注意力机制 融合HCF-Net维度感知选择性整合模块DASI 增强小目标显著性 前言 - 魔改工程师 YOLO26 改进 – 注意力机制 HaloNet 局部自注意力 (Local Self-Attention) 以分块交互策略实现高效全局上下文建模 YOLO26 改进 – 注意力机制 DiffAttention差分注意力:轻量级差分计算实现高效特征降噪,提升模型抗干扰能力 TMLR 2025 前言 - 魔改工程师 YOLO26 改进 – 注意力机制 CAFM (Convolutional Block Attention Module) 卷积块注意力模块:轻量级设计优化特征提取流程,提升小目标感知 YOLO26 改进 – 注意力机制 ACmix自注意力与卷积混合模型:轻量级设计融合双机制优势,实现高效特征提取与推理加速 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总 - 魔改工程师 前言 - 魔改工程师 YOLO26改进 – SPPF模块 替代SPPF,FFocal Modulation焦点调制:即插即用轻量设计优化全局语义捕获 前言 - 魔改工程师 YOLO26改进 – SPPF模块 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!! - 魔改工程师 YOLO26改进 – SPPF模块 SPPELAN 空间金字塔池化与增强局部注意力:替代SPPF增强多尺度上下文捕获,提升检测精度
**操作历史管理器的撤销/重做能力** - 魔改工程师
魔改工程师 · 2026-07-07 · via 魔改工程师

2026 华为OD机试真题 4月29日华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

实现一个操作历史管理器,使用双向链表存储执行过的操作。支持执行新操作、撤销和重做功能。

2026 华为OD机试真题 4月29日华为OD上机新系统考试真题 100 分题型

输入描述

  • 执行操作($execute$ {操作描述}):执行新操作,并清除当前操作之后的所有历史记录
  • 撤销($undo$):回退到上一个操作状态(上一个操作状态可以为从未执行过任何操作的状态,若当前状态已经是从未执行过任何操作的状态,则 $undo$ 失败)
  • 重做($redo$):前进到下一个操作状态(下一个操作状态是之前撤销过的操作,若没有进行过撤销操作(即链表的下一个操作状态不存在),则 $redo$ 失败)

说明

命令只会出现 $execute$ {操作描述}、$undo$、$redo$ 三种类型

输出描述

  • 执行完所有命令后,返回当前操作的描述

  • 若执行 $undo$ 时,当前状态是从未执行过任何操作的状态,立即返回 "$undo$ $failed$",不继续执行后续命令。(注意:$undo$ 可以撤销到从未执行过任何操作的状态)

  • 若执行 $redo$ 时无下一个操作,立即返回 "$redo$ $failed$",不继续执行后续命令

  • 若当前状态是从未执行过任何操作,当前操作描述为空字符串 ""

示例1

输入

[["execute", "insert hello"], ["execute", "newline"], ["execute", "insert woo"], ["undo"], ["execute", "insert world"], ["undo"]]

输出

"newline"

说明

  • 执行 $insert$ $hello$ $→$ 当前:$insert$ $hello$

  • 执行 $newline$ $→$ 当前:$newline$

  • 执行 $insert$ $woo$ $→$ 当前:$insert$ $woo$

  • 撤销 $→$ 当前:$newline$(当前回滚到上一步的状态)

  • 执行 $insert$ $world$ $→$ 当前:$insert$ $world$(清除任何后续历史)

  • 撤销 $→$ 当前:$newline$

示例2

输入

[[]]

输出

""

说明

当前状态是从未执行过任何操作,输出: ""

示例3

输入

[["execute", "insert hello"], ["undo"]]

输出

""

说明

  • 执行 $insert$ $hello$ $→$ 当前:$insert$ $hello$

  • 撤销 $→$ 当前:""(当前状态是从未执行过任何操作,输出: "")

示例4

输入

[["execute","insert hello"],["undo"],["redo"]]

输出

"insert hello"

说明

  • 执行 $insert$ $hello$ $→$ 当前:$insert$ $hello$

  • 撤销 $→$ 当前:""

  • 重做 $→$ 当前:$insert$ $hello$

解题思路

核心思想

本题要求实现一个操作历史管理器,核心在于维护一个操作序列和一个指向当前操作的指针(游标)

  1. 存储结构:可以使用动态数组(如 Java 的 ArrayList、Python 的 list)或双向链表来存储执行过的操作描述。
  2. 指针维护:使用一个整数变量 cur 表示当前所处的操作索引。初始状态下,没有任何操作,cur = -1
  3. 操作处理
    • execute {op}
      • 首先需要清空当前指针 cur 之后的所有历史记录(因为新操作会覆盖掉撤销后的重做路径)。
      • 将新操作添加到序列末尾。
      • 将指针 cur 指向序列的最后一个元素。
    • undo
      • 如果 cur == -1,说明已经回退到初始状态,无法再撤销,返回 "undo failed"。
      • 否则,将 cur 减 1。
    • redo
      • 如果 cur 已经指向序列的最后一个元素,说明没有可以重做的操作,返回 "redo failed"。
      • 否则,将 cur 加 1。
  4. 结果返回
    • 遍历完所有指令后,根据 cur 的值返回对应的操作描述。如果 cur == -1,返回空字符串 ""

复杂度分析

  • 时间复杂度:$O(N \times M)$,其中 $N$ 是命令的数量,$M$ 是每次 execute 时清空后续历史的开销。在最坏情况下,如果频繁在中间位置执行 execute,清空操作可能达到 $O(N)$。不过在实际应用中,如果使用链表或者仅移动尾部索引,可以优化到 $O(1)$。
  • 空间复杂度:$O(N \times L)$,其中 $N$ 是执行的操作数量,$L$ 是操作描述字符串的平均长度。我们需要存储所有的历史