我有以下情况,我想获得一个没有大量循环和切片的通用解决方案。
首先 :
我初始化N
它通过它计算列表大小(初始大小):
通过这个方程N(N-1)/2
..
假设我设置N = 5
了初始大小为10
.
之后,我用一些方法用一个和零填充列表。
像这样 :
0 1 0 1 1 1 0 1 0 1
该列表根据 N 分段,其中分段为 (N-1)。
所以
- 第一段是:
0 1 0 1
- 第二段是:
1 1 0
- 第三部分是:
1 0
- 第四段是:
1
[0 1 0 1] [1 1 0] [1 0] [1]
我想做的是,如果我再次输入任何数字作为输入 N:
通过适当的移位保持以前的数据
根据新尺寸。例如,如果 N=6,则尺寸为 15
所以我将有 5 个段而不是 4 个
我想要这样:
[0 1 0 1 0 ] [1 1 0 0 ] [1 0 0 ] [1 0 ] [ 0 ]
反之亦然,如果我首先输入 N = 7 并填写它。然后我输入 N = 4
我想做正确的转变