非常感謝你閱讀本文~
歡迎【👍點贊】【?收藏】【📝評論】~
放棄不難,但堅持一定很酷~
希望我們大家都能每天進步一點點~
本文由 二當家的白帽子 https://le-yi.blog.csdn.net/ 博客原創~
文章目錄
- 1929. 陣列串聯:
- 樣例 1
- 樣例 2
- 提示
- 分析
- 題解
- java
- c
- c++
- python
- go
- rust
- 原題傳送門
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:
def getConcatenation(self, nums: List[int]) -> List[int]:
nums.extend(nums)
return nums
go
func getConcatenation(nums []int) []int {
return append(nums, nums...)
}
rust
impl Solution {
pub fn get_concatenation(nums: Vec<i32>) -> Vec<i32> {
let mut nums = nums;
for i in 0..nums.len() {
nums.push(nums[i]);
}
nums
}
}
原題傳送門
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/299180.html
標籤:java
