3925. 连接逆序数组
题目描述
给你一个长度为 n 的整数数组 nums。
构造一个新的长度为 2 * n 的数组 ans,其中前 n 个元素与 nums 相同,后 n 个元素为 nums 的逆序。
具体而言,对于 0 <= i <= n - 1:
ans[i] = nums[i]ans[i + n] = nums[n - i - 1]
返回整数数组 ans。
示例 1:
输入: nums = [1,2,3]
输出: [1,2,3,3,2,1]
解释:
ans 的前 n 个元素与 nums 相同。
接下来的 n = 3 个元素按照 nums 的逆序填入:
ans[3] = nums[2] = 3ans[4] = nums[1] = 2ans[5] = nums[0] = 1
因此,ans = [1, 2, 3, 3, 2, 1]。
示例 2:
输入: nums = [1]
输出: [1,1]
解释:
数组逆序后保持不变。因此,ans = [1, 1]。
提示:
1 <= nums.length <= 1001 <= nums[i] <= 100
解法
方法一:模拟
我们创建一个长度为 \(2 \times n\) 的数组 \(\textit{ans}\),前 \(n\) 个元素与 \(\textit{nums}\) 相同,后 \(n\) 个元素为 \(\textit{nums}\) 的逆序。
具体而言,对于 \(0 \leq i \leq n - 1\),我们将 \(\textit{ans}[i]\) 赋值为 \(\textit{nums}[i]\),将 \(\textit{ans}[i + n]\) 赋值为 \(\textit{nums}[n - i - 1]\)。
最后返回数组 \(\textit{ans}\) 即可。
时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)。其中 \(n\) 是数组 \(\textit{nums}\) 的长度。
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |