力扣 1381. 设计一个支持增量操作的栈 数组模拟栈

https://leetcode-cn.com/problems/design-a-stack-with-increment-operation/
力扣 1381. 设计一个支持增量操作的栈 数组模拟栈_第1张图片
思路:栈的大小在一开始就固定了,所以用数组模拟就行了。

class CustomStack {
public:
    CustomStack(int maxSize):arr(new int[maxSize]),siz(0),maxSize(maxSize){
        
    }
    
    void push(int x) {
        if(siz<maxSize)
            arr[siz++]=x;
    }
    
    int pop() {
        if(!siz)
            return -1;
        return arr[--siz];
    }
    
    void increment(int k, int val) {
        int MIN=min(k,siz);
        for(int i=0;i<MIN;i++)
            arr[i]+=val;
    }
private:
    int *arr;
    int siz,maxSize;
};

/**
 * 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);
 */

你可能感兴趣的:(面试题,栈,模拟)