13. 构造特定数组的逆序拼接
目录
刷题前请喊一遍我们的口号:
- 方法不对,刷题白费。
- 节省时间,精准刷题。
本题难度系数:⭐ 简单
问题描述
小 U 得到了一个数字 n,他的任务是构造一个特定数组。这个数组的构造规则是:对于每个 i 从 1 到 n,将数字 n 到 i 逆序拼接,直到 i 等于 n 为止。最终,输出这个拼接后的数组。
例如,当 n 等于 3 时,拼接后的数组是 [3, 2, 1, 3, 2, 3]。
测试样例
样例 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]
解题思路
- 问题理解:
- 我们需要构造一个数组,对于每个 i从1到n,将数字从n到i逆序拼接。
- 例如,n = 3时:- i = 1:拼接- [3, 2, 1]
- i = 2:拼接- [3, 2]
- i = 3:拼接- [3]
- 最终数组是 [3, 2, 1, 3, 2, 3]
 
 
- 我们需要构造一个数组,对于每个 
- 数据结构选择:
- 使用一个数组 result来存储最终的结果。
 
- 使用一个数组 
- 算法步骤:
- 外层循环:i从1到n。
- 内层循环:j从n到i,每次递减1,将j加入result。
 
- 外层循环:
最优 JavaScript 代码实现
function solution(n) {
    const result = [];
    for (let i = 1; i <= n; i++) { for (let j = n; j >= i; j--) {
            result.push(j);
        }
    }
    return result;
}
function main() {
    console.log(JSON.stringify(solution(3)) === JSON.stringify([3, 2, 1, 3, 2, 3]));
    console.log(JSON.stringify(solution(4)) === JSON.stringify([4, 3, 2, 1, 4, 3, 2, 4, 3, 4]));
    console.log(JSON.stringify(solution(5)) === JSON.stringify([5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5]));
}
main();
代码说明
- 外层循环:i从1到n,控制每次拼接的起始点。
- 内层循环:j从n到i,逆序将数字加入result数组。
- 时间复杂度:O(n²),因为嵌套循环的总次数是 n + (n-1) + ... + 1 = n(n+1)/2。
- 空间复杂度:O(n²),因为结果数组的长度是 n(n+1)/2。
这个实现是最直接和高效的方式,符合题目要求。
以上关于13. 构造特定数组的逆序拼接的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 13. 构造特定数组的逆序拼接
    如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 13. 构造特定数组的逆序拼接
 
         码云
码云            
 微信
微信 支付宝
支付宝 
           
           
           
          