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;
}
};

浙公网安备 33010602011771号