LeetCode刷題1929-簡單-數組串聯

布小禪 2021-08-15 04:45:44 阅读数:829

本文一共[544]字,预计阅读时长:1分钟~
leetcode 1929-

在這裏插入圖片描述

前言

算法作為極其重要的一點,是大學生畢業找工作的核心競爭力,所以為了不落後與人,開始刷力扣算法題!

第一遍,不求最優解,但求能過!!!

1. 題目描述

給你一個長度為 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. 題目解析

  1. 循環

    給了答案數組和原數組的關系,循環數組的長度的二倍

    依次往數組裏面添加

    判斷條件

  2. python列錶相加

3. 代碼

1. java

class Solution {

public int[] getConcatenation(int[] nums) {

int n = nums.length;
int[] ans = new int[n*2];
for (int i=0;i<n*2;i++){

if (i<n){

ans[i] = nums[i];
}else{

ans[i] = nums[i-n];
}
}
return ans;
}
}

2. python

  1. 循環

    class Solution:
    def getConcatenation(self, nums: List[int]) -> List[int]:
    ans = [0]*(len(nums)*2)
    for i in range(len(nums)*2):
    if i<len(nums):
    ans[i] = nums[i]
    else:
    ans[i] = nums[i-len(nums)]
    return ans
    
  2. python性質

    class Solution:
    def getConcatenation(self, nums: List[int]) -> List[int]:
    ans = nums*2
    return ans
    

結語

堅持最重要,每日一題必不可少!

在這裏插入圖片描述

版权声明:本文为[布小禪]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815044528107c.html