obtain 获得
capacity 容纳能力
int a[1005];
int main() {
int m, n, k;
cin >> m >> n >> k;
while(k --) {
for(int i = 0; i < n; i ++) cin >> a[i];
int index = 1;
bool f = 0;
stack<int> s;
for(int i = 0; i < n; i ++) {
while(s.empty() || s.top() != a[i]) {
s.push(index ++);
if(s.size() > m) {
f = 1;
break;
}
}
if(f) break;
s.pop();
}
f == 0 ? cout << "YES\n" : cout << "NO\n";
}
return 0;
}
不断尝试栈顶是否能弹出数列当前值
如不能弹出,就持续将index入栈,直到能弹出数列值
如能够弹出数列最后一个值,输出YES,如直到栈满也无法达到数值 输出NO
该博客介绍了如何使用栈来解决一个问题,即给定一个整数数组a和两个整数m和n,判断是否可以通过将数组中的元素按顺序依次压入栈,然后弹出元素的方式,使得最后栈中只剩下一个元素且其值为数组的最后一个元素。如果可以,输出YES,否则输出NO。
596

被折叠的 条评论
为什么被折叠?



