LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 題目
請你設(shè)計一個支持下述操作的棧。
實現(xiàn)自定義棧類 CustomStack :
- CustomStack(int maxSize):用 maxSize 初始化對象,maxSize 是棧中最多能容納的元素數(shù)量,棧在增長到 maxSize 之后則不支持 push 操作。
- void push(int x):如果棧還未增長到 maxSize ,就將 x 添加到棧頂。
- int pop():返回棧頂?shù)闹?#xff0c;或棧為空時返回 -1 。
- void inc(int k, int val):棧底的 k 個元素的值都增加 val 。如果棧中元素總數(shù)小于 k ,則棧中的所有元素都增加 val 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/design-a-stack-with-increment-operation
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
2.1 deque
- 雙端隊列來回首尾倒騰就好了
2.2 數(shù)組
class CustomStack {int idx = 0, s, count = 0, v, i;vector<int> a; public:CustomStack(int maxSize) {a.resize(maxSize);s = maxSize;}void push(int x) {if(count < s){a[idx++] = x;count++;}}int pop() {if(count){v = a[idx-1];idx--;count--;return v;}return -1;}void increment(int k, int val) {k = min(k, count);for(i = 0; i < k; ++i)a[i] += val;} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 455. 分发饼干(贪
- 下一篇: 程序员面试金典 - 面试题 10.02.