资讯动态

2026-08-20:连接逆序数组。用go语言,给定一个整数数组,需要生成一个新数组,长度是原来的两倍。新数组的前半部分就是把原数组从左到右原样放进去;后半部分则是把原数组从右到左逆序放进去。也就是说

发布时间:2026/8/21 7:35:28 来源:尧图企业网站定制
2026-08-20连接逆序数组。用go语言给定一个整数数组需要生成一个新数组长度是原来的两倍。新数组的前半部分就是把原数组从左到右原样放进去后半部分则是把原数组从右到左逆序放进去。也就是说先顺序复制一遍再倒序复制一遍最后把这两段拼接起来返回。1 nums.length 100。1 nums[i] 100。输入 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]。题目来自力扣3925。分步骤过程描述接收输入数组设输入数组为nums长度为n。例如nums [1, 2, 3]此时n 3。复制原数组创建一个新的切片rev它的长度和内容与nums完全相同。这一步是为了避免后续反转操作影响原始数组nums的内容。反转副本对副本rev执行反转操作即将rev的第一个元素与最后一个元素交换、第二个与倒数第二个交换以此类推直到整个数组顺序完全颠倒。反转后rev中的元素顺序变为原数组的逆序。例如原数组[1, 2, 3]反转后变为[3, 2, 1]。拼接两个部分构建最终的结果数组ans先将nums中的所有元素按原顺序放入ans的前n个位置。再将已经反转的rev中的所有元素依次追加到ans的后n个位置。这样ans的前半部分就是原数组顺序后半部分就是原数组逆序。返回结果最终得到的ans长度为2 * n内容为nums[0], nums[1], ..., nums[n-1], nums[n-1], nums[n-2], ..., nums[0]例如输入[1, 2, 3]输出[1, 2, 3, 3, 2, 1]。复杂度分析时间复杂度整个过程主要包括复制数组需要遍历nums一次耗时 O(n)。反转数组需要交换n/2对元素同样为 O(n)。拼接数组将两个长度为n的数组依次放入新数组也是 O(n)。所有步骤都是线性操作因此总时间复杂度为O(n)其中n是原数组的长度。额外空间复杂度创建了辅助数组rev长度为n占用 O(n) 空间。最终返回的结果数组ans长度为2n也需要 O(n) 空间输出数组是否计入额外空间取决于分析惯例但无论是否计入其数量级都是 O(n)。因此整个算法使用的额外空间不含输入数组本身为O(n)。即使只考虑辅助数组rev额外空间也是 O(n)。Go完整代码如下packagemainimport(fmtslices)funcconcatWithReverse(nums[]int)[]int{rev:slices.Clone(nums)slices.Reverse(rev)returnappend(nums,rev...)}funcmain(){nums:[]int{1,2,3}result:concatWithReverse(nums)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-defconcat_with_reverse(nums):revnums[::-1]returnnumsrevdefmain():nums[1,2,3]resultconcat_with_reverse(nums)print(result)if__name____main__:main()C完整代码如下#includeiostream#includevector#includealgorithmstd::vectorintconcatWithReverse(conststd::vectorintnums){std::vectorintrevnums;std::reverse(rev.begin(),rev.end());std::vectorintresultnums;result.insert(result.end(),rev.begin(),rev.end());returnresult;}intmain(){std::vectorintnums{1,2,3};std::vectorintresultconcatWithReverse(nums);std::cout[;for(size_t i0;iresult.size();i){std::coutresult[i];if(i!result.size()-1)std::cout ;}std::cout]std::endl;return0;}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价