Leetcode1929. 数组串联

1929. 数组串联

给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:

ans[i] == nums[i]
ans[i + n] == nums[i]
具体而言,ans 由两个 nums 数组 串联 形成。

返回数组 ans 。

题意概述:

构造出一个新的数组,新的数组由原先两个数组串联而成。

解题报告:

直接在原数组当中重新push_back原数组当中的所有元素即可。

class Solution {
public:
    vector<int> getConcatenation(vector<int>& nums) {
        for(int i=0;i<nums.size();i++)
            nums.push_back(nums[i]);
        return nums;
    }
};

但是这样的代码会tle,思考一下就会发现其问题是出在循环的i<nums.size()在循环节当中不断往数组当中添加元素,这样数组的长度就会不断变化,这样就会导致程序陷入死循环。

提前用一个变量记录原数组的长度即可。

class Solution {
public:
    vector<int> getConcatenation(vector<int>& nums) {
        int len=nums.size();
        for(int i=0;i<len;i++)
            nums.push_back(nums[i]);
        return nums;
    }
};
posted @ 2021-08-08 09:27  dinghao1262  阅读(102)  评论(0)    收藏  举报