1929. 数组串联:
给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:
ans[i] == nums[i]
ans[i + n] == nums[i]
具体而言,ans 由两个 nums 数组 串联 形成。
返回数组 ans 。
样例 1
输入:
nums = [1,2,1]
输出:
[1,2,1,1,2,1]
解释:
数组 ans 按下述方式形成:
ans = [nums[0],nums[1],nums[2],nums[0],nums[1],nums[2]]
ans = [1,2,1,1,2,1]
样例 2
输入:
nums = [1,3,2,1]
输出:
[1,3,2,1,1,3,2,1]
解释:
数组 ans 按下述方式形成:
ans = [nums[0],nums[1],nums[2],nums[3],nums[0],nums[1],nums[2],nums[3]]
ans = [1,3,2,1,1,3,2,1]
提示
- n == nums.length
- 1 <= n <= 1000
- 1 <= nums[i] <= 1000
分析
- 参数长度不可变
- 按着题意,直接新建2倍大数组,然后循环2 * n次,按顺序赋值。
- 由于结果是入参重复2次,所以也可以直接循环n次,每次赋值2个结果。
- 参数长度可变
- 直接在参数后面,重复一遍自己,然后返回即可。
题解
java
public class Solution {
public int[] getConcatenation(int[] nums) {
// 原数组长度
final int n = nums.length;
// 结果数组长度
final int m = n \* 2;
int[] ans = new int[m];
for (int i = 0; i < m; ++i) {
ans[i] = nums[i % n];
}
return ans;
}
}
class Solution {
public int[] getConcatenation(int[] nums) {
// 原数组长度
final int n = nums.length;
int[] ans = new int[n \* 2];
for (int i = 0; i < n; ++i) {
ans[i] = ans[i + n] = nums[i];
}
return ans;
}
}
c
/\*\*
\* Note: The returned array must be malloced, assume caller calls free().
\*/
int\* getConcatenation(int\* nums, int numsSize, int\* returnSize){
int \*ans = malloc(sizeof(int) \* numsSize \* 2);
for (int i = 0; i < numsSize; ++i) {
ans[i] = ans[i + numsSize] = nums[i];
}
\*returnSize = numsSize \* 2;
return ans;
}
c++
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
nums.insert(nums.end(), nums.begin(), nums.end());
return nums;
}
};
python
class Solution:
## 写在最后
**在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。**
需要完整版PDF学习资源私我
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**