2020-05-11

1.题目描述

设计一个支持增量操作的栈

2.题解

使用vector在进行增量操作的时候会方便一些,vector支持push_back、pop_back、empty操作。

3.代码

class CustomStack {
public:CustomStack(int maxSize) {maxsize=maxSize;len=0; // 初始长度为0}void push(int x) {if (len<maxsize){myvector.push_back(x);len++;}}int pop() {if (myvector.empty()) return -1;int t=myvector[len-1];myvector.pop_back();len--;return t;}void increment(int k, int val) {int t;int l=min(len,k);for (int i=0;i<l;i++){myvector[i]+=val;}}vector<int> myvector;int maxsize;int len;
};/*** Your CustomStack object will be instantiated and called as such:* CustomStack* obj = new CustomStack(maxSize);* obj->push(x);* int param_2 = obj->pop();* obj->increment(k,val);*/

1381. 设计一个支持增量操作的栈相关推荐

  1. LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)

    1. 题目 请你设计一个支持下述操作的栈. 实现自定义栈类 CustomStack : CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容 ...

  2. LeetCode 5357. 设计一个支持增量操作的栈

    5357. 设计一个支持增量操作的栈 思路:用数组实现即可 class CustomStack { public:CustomStack(int maxSize) {fill(a,a+1001,-1) ...

  3. 【最小栈c++】设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈

    设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. ...

  4. 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈

    题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...

  5. 如何设计一个支持1亿用户使用的系统

    高可用架构设计最核心的就是两点:解耦和冗余.解耦包括业务状态分离(无状态架构设计).分库分表等.冗余包括缓存.CDN.主从备份.主主备份.GeoDNS 等.一个好的架构设计需要在产品迭代的不同阶段选择 ...

  6. 如何设计一个支持一亿用户的系统,心中有方案遇事不慌!

    要设计一个支持数亿用户的系统并不容易.对于软件架构师来说,这总是一个很大的挑战(但是读完我的文章

  7. LeetCode 2296. 设计一个文本编辑器(双栈)

    文章目录 1. 题目 2. 解题 1. 题目 请你设计一个带光标的文本编辑器,它可以实现以下功能: 添加:在光标所在处添加文本. 删除:在光标所在处删除文本(模拟键盘的删除键). 移动:将光标往左或者 ...

  8. 最小栈的实现(设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。)

    最小栈的实现 思路 两个栈,左边栈接受元素,右边栈存最小的元素 入栈时,先入左边栈,随后进行比较,左边和右边栈顶元素进行比较,如果新元素小,就把新元素放在右边的栈顶位置,如果新元素大,则还是把右边栈顶 ...

  9. 设计一个有getMin功能的栈 (python)

    题目: 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作 要求: 1.pop.push.getMin操作的时间复杂度都是O(1) 2.设计的栈类型可以使用现成的栈结构 解决办 ...

最新文章

  1. 如何删除VS2015中的OpenCV的配置
  2. 将yolo标注转换为tensorflow_yolov3标注生成train.txt和test.txt同时做数据清洗
  3. 图像分割——迭代式阈值分割
  4. mysql5.6.msi 百度云_如何安装Mysql数据库类型msi(5.6)
  5. 用Navicat for MySQL往数据表中添加数据时汉字出现乱码
  6. nodejs注册为windows服务实现开机自启动
  7. java nio 追加写文件_java.nio.file读写文件
  8. php卡盟主站_php卡盟
  9. 医疗器械app软件开发功能明细
  10. android 读写txt文件,Android:将文本写入txt
  11. nifi服务器间拷贝文件,NIFI Kerberos 认证
  12. ABP 在中抛出“Cannot access a disposed object. A common cause of this error is disposing”异常分析
  13. 求x的n次方编程_c语言求x的n次方的函数介绍
  14. 电驴维持友情链接地址、更新服务器列表
  15. AAE 对抗自编码(一)
  16. 微信支付之公众号发红包和企业付款
  17. 102 613 SWP协议学习笔记--数据链路层
  18. apicloud常用方法总结
  19. 美团云苏宁云倒下了,他们却顺利突围
  20. PostgreSQL 如何实现数据透视表

热门文章

  1. java重定向url有参数吗_JavaScript重定向URL参数的两种方法小结
  2. ps如何修改图片大小尺寸_PS常用操作 | 图片的裁剪、拼接、尺寸调整... ...
  3. 腐蚀和膨胀(erode and dilate)
  4. P2197 【模板】nim 游戏(python3实现)
  5. P5708 【深基2.习2】三角形面积(python3实现)
  6. 计算机科学美国大学专业,美国大学Computer Science 计算机科学专业排名(转)...
  7. 怎么用python进行回归预测_使用Python训练回归模型并进行预测
  8. 平衡二叉树平衡因子怎么计算_数据结构PHP 平衡二叉树(AVL)的平衡原理
  9. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿
  10. Charles笔记-配置Charles代理抓取HTTP和HTTPS数据包,安卓模拟器连接Charles