gpt4 book ai didi

c# - 如何移动列表中的数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:01 26 4
gpt4 key购买 nike

我有以下情况,我想得到一个没有大量循环和切片的通用解决方案。

首先:

我初始化 N,通过它我计算列表大小(初始大小):

通过这个等式 N(N-1)/2..

假设我设置了 N = 5,因此初始大小将为 10

之后,我用一些方法用 1 和 0 填充列表。

像这样:

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

我想做出正确的转变

最佳答案

有什么理由必须将它们放在一个列表中?看起来你在这里有一个 n 列表的列表,所以创建一个大小为 N 的列表,其中包含大小为 1 到 N 的列表。这样,当你增加 N 时,你只需将适当数量的 0 添加到每个列表并创建只有 0 的新列表。如果你减少 N 我不确定规则是什么但我怀疑通过比较你会删除适当数量的短列表,然后从其他列表中删除最后的元素。

就拥有单个数组列表而言,它不起作用,但我会说,它是存储您描述的数据的更好方法。无论如何,您始终可以很容易地从我描述的模型中获得扁平化列表...

关于c# - 如何移动列表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com