acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 资讯
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 第一条c++题解(超详解)

    思路 分析问题 核心问题 维护一个动态序列,支持三种操作: 查询:问第I个元素的值 插入:在第I个元素前插入一个新元素 删除:删除第I个元素 数据结构选择 N和M最大只有1000,数据规模很小,直接用数组模拟即可,不需要链表或VECTOR。 具体做法 1. 查询(操作1) 直接输出 A[I],O(1) 2. 插入(操作2) 要在第I个位置前面插入V: 先把从I到末尾的元素全部往后移一位 然后在空出来的位置放入V 序列长度+1 3. 删除(操作3) 要删除第I个元素: 把从I+1到末尾的元素全部往前移一位 序列长度-1 为什么用数组就够了? N≤1000,M≤1000 即使每次都插入,序列最长也就2000左右 数组移位的时间复杂度O(N),完全能接受 代码简单,不容易出错 复杂度 查询:O(1) 插入:O(N) 删除:O(N) 总体:O(N×M) ≈ 10⁶,完全可行 代码如下 如果觉得好,请给一个赞,谢谢

    userId_undefined
    ⠀
    时间刺客时空双修者空间掌握者
    2阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页