Design a Stack With Increment Operation
设计一个stack, 有一个函数可以增加stack中底部向上k个数.
这个一看就要用cpp做, 直接vector, 原因是可以random access, 有现成的pop_back()和pop(). 然后我刚知道v.size()返回不是int, 是unsigned int, 还不能直接用min比
class CustomStack {
public:
vector<int> v;
int max;
CustomStack(int maxSize) {
max = maxSize;
}
void push(int x) {
if(v.size() >= max)
return;
v.push_back(x);
}
int pop() {
if(empty(v))
return -1;
int res = v.back();
v.pop_back();
return res;
}
void increment(int k, int val) {
int vv = v.size();
int c = min(k, vv);
for(int i = 0; i < c; i++){
v[i] += val;
}
}
};
/**
* 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);
*/