题目要求构造一个特定的数组,该数组的构建方式如下:
- 给定一个正整数
n。 - 对于从1到
n的每一个整数i,构造一个从n到i的递减序列。 - 将所有这些递减序列连接成一个大的数组。
def solution(n: int) -> list:
result = []
for i in range(1, n + 1):
result += list(range(n, i - 1, -1))
return result
```
if __name__ == '__main__':
print(solution(3) == [3, 2, 1, 3, 2, 3])
print(solution(4) == [4, 3, 2, 1, 4, 3, 2, 4, 3, 4])
print(solution(5) == [5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5])
#### 关键点解释
- `range(n, i - 1, -1)`:这里的`range`函数用来生成一个从`n`到`i`(包括`i`)的逆序列表。`-1`表示步长,即每次递减1。`i-1`是因为`range`函数生成的序列不会包含结束值,所以为了包含`i`,需要设置结束值为`i-1`。
- `result += list(...)`:这里使用`+=`操作符将新生成的逆序列表添加到`result`列表的末尾。`list(...)`是为了确保`range`对象被转换成列表形式。