13构造特定数组的逆序拼接(易)|豆包MarsCode AI刷题

117 阅读1分钟

题目描述:

小U得到了一个数字n,他的任务是构造一个特定数组。这个数组的构造规则是:对于每个i从1到n,将数字n到i逆序拼接,直到i等于n为止。最终,输出这个拼接后的数组。

案例:

样例1:

输入:n = 3
输出:[3, 2, 1, 3, 2, 3]

样例2:

输入:n = 4
输出:[4, 3, 2, 1, 4, 3, 2, 4, 3, 4]

样例3:

输入:n = 5
输出:[5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5]

思路:结合案例理解题目意思即可

代码如下

#include <vector>
#include <iostream>
using namespace std;

vector<int> solution(int n) {
    // write code here
    vector<int> a;
    for(int i=0;i<n;i++){
        for(int j=n;j>=i+1;j--){
            a.push_back(j);
        }
    }
    return a;
}

int main() {
    vector<int> result1 = solution(3);
    cout << (result1 == vector<int>{3, 2, 1, 3, 2, 3}) << endl;

    vector<int> result2 = solution(4);
    cout << (result2 == vector<int>{4, 3, 2, 1, 4, 3, 2, 4, 3, 4}) << endl;

    vector<int> result3 = solution(5);
    cout << (result3 == vector<int>{5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5}) << endl;

    return 0;
}