笔记介绍:
本项目是datawhale发布的LeetCode 算法笔记(Leetcode-Notes)课程完成笔记,根据推荐题目循序渐进练习算法题目。主要用python进行书写相关代码,会介绍解题思路及跑通解法。
1929. 数组串联
题目大意
描述:给定一个长度为
n
n
n 的整数数组 nums
。
要求:构建一个长度为
2
×
n
2 \times n
2×n 的答案数组 ans
,答案数组下标从
0
0
0 开始计数 ,对于所有
0
≤
i
<
n
0 \le i < n
0≤i<n 的
i
i
i ,满足下述所有要求:
- a n s [ i ] = = n u m s [ i ] ans[i] == nums[i] ans[i]==nums[i]。
- a n s [ i + n ] = = n u m s [ i ] ans[i + n] == nums[i] ans[i+n]==nums[i]。
具体而言,ans
由两个 nums
数组「串联」形成。
说明:
- n = = n u m s . l e n g t h n == nums.length n==nums.length。
- 1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000。
- 1 ≤ n u m s [ i ] ≤ 1000 1 \le nums[i] \le 1000 1≤nums[i]≤1000。
示例:
-
示例 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]
解题思路
这道题目要求我们将一个数组串联两次形成一个新数组。解题思路非常简单,我们只需要将原数组 nums
和自身拼接起来即可得到答案数组 ans
。
解题 Python 代码
def analysis(a: list):
return a + a
def main():
# 主要逻辑代码
input_a = list(map(int, input('请输入一个由空格分隔的整数序列:').split()))
print('串联后的数组:', analysis(input_a))
if __name__ == "__main__":
main()