用递归函数和栈逆序一个栈

用递归函数和栈逆序一个栈

http://www.nowcoder.com/questionTerminal/1de82c89cc0e43e9aa6ee8243f4dbefd

题目要求只能用递归函数来实现,不能用其他数据结构(这里如果连vector都不能用的话,那就直接用定义数组了)

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void reStack(vector<int>& , int, int);

int main(){
    int N;
    cin >> N;
    vector<int> arr(N, 0);
    for(int i = 0; i < N; ++i){
        cin >> arr[i];
    }
    reStack(arr, 0, N-1);
    for(auto num : arr){
        cout << num << ' ';
    }
    /*这里因为系统不会计算你多输出空格,但是如果实际上应该考虑空格输出个数
    for(int i = 0; i < N; ++i){
    cout << num ; 
    if(i < N - 1)
    cout << ' ';
    }
    */
    return 0;
}

void reStack(vector<int>& arr, int start, int end){
    if(start >= end)
        return;
    swap(arr[start], arr[end]);
    reStack(arr, start+1, end-1);
}
全部评论

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务