leetcode/solution/1900-1999/1929.Concatenation of Array
..
README.md
README_EN.md
Solution.c
Solution.cpp
Solution.go
Solution.java
Solution.js
Solution.py
Solution.rs
Solution.ts

README_EN.md

comments difficulty edit_url rating source tags
true Easy https://github.com/doocs/leetcode/edit/main/solution/1900-1999/1929.Concatenation%20of%20Array/README_EN.md 1132 Weekly Contest 249 Q1
Array
Simulation

1929. Concatenation of Array

中文文档

Description

Given an integer array nums of length n, you want to create an array ans of length 2n where ans[i] == nums[i] and ans[i + n] == nums[i] for 0 <= i < n (0-indexed).

Specifically, ans is the concatenation of two nums arrays.

Return the array ans.

 

Example 1:

Input: nums = [1,2,1]
Output: [1,2,1,1,2,1]
Explanation: The array ans is formed as follows:
- ans = [nums[0],nums[1],nums[2],nums[0],nums[1],nums[2]]
- ans = [1,2,1,1,2,1]

Example 2:

Input: nums = [1,3,2,1]
Output: [1,3,2,1,1,3,2,1]
Explanation: The array ans is formed as follows:
- 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]

 

Constraints:

  • n == nums.length
  • 1 <= n <= 1000
  • 1 <= nums[i] <= 1000

Solutions

Solution 1: Simulation

We directly simulate according to the problem description by adding the elements of \textit{nums} to the answer array one by one, and then adding the elements of \textit{nums} to the answer array again.

The time complexity is O(n), and the space complexity is O(n). Here, n is the length of the array \textit{nums}.

Python3

class Solution:
    def getConcatenation(self, nums: List[int]) -> List[int]:
        return nums + nums

Java

class Solution {
    public int[] getConcatenation(int[] nums) {
        int n = nums.length;
        int[] ans = new int[n << 1];
        for (int i = 0; i < n << 1; ++i) {
            ans[i] = nums[i % n];
        }
        return ans;
    }
}

C++

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

Go

func getConcatenation(nums []int) []int {
	return append(nums, nums...)
}

TypeScript

function getConcatenation(nums: number[]): number[] {
    return [...nums, ...nums];
}

Rust

impl Solution {
    pub fn get_concatenation(nums: Vec<i32>) -> Vec<i32> {
        nums.repeat(2)
    }
}

JavaScript

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var getConcatenation = function (nums) {
    return [...nums, ...nums];
};

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