题解(三种方法,带思路,时间复杂度)
2025-05-10 11:10:21
发布于:浙江
6阅读
0回复
0点赞
方法一:
根据栈的特点(先进先出),我们就可以定义一个数组,之后逆序输出即可
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[105]={};
int n;
cin >> n;
for(int i=1;i<=n;i++){
cin >> a[i];
}for(int i=n;i>0;i--){
cout << a[i]<<" ";
}
return 0;
}
方法二(纯无聊)
思路:同上,只不过是vector
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
vector <int> a;
int n;
cin >> n;
for(int i=1;i<=n;i++){
int m;
cin >> m;
a.push_back(m);
}for(int i=--n;i>=0;i--)cout << a[i]<<" ";
return 0;
}
方法三(作者没学过栈,但是也能对):
思路:定义一个STL容器栈,之后进行栈的操作即可()
代码:
include <bits/stdc++.h>
using namespace std;
int main(){
stack<int> a;
int n;
cin >> n;
for(int i=1;i<=n;i++){
int m;
cin >> m;
a.push(m);
}
for(int i=1;i<=n;i++){
cout << a.top()<<" ";
a.pop();
}
return 0;
}
时间复杂度均为
全部评论 1
非常方便
2025-05-10 来自 浙江
1
有帮助,赞一个