c# - C#中的螺旋算法

标签 c# algorithm

<分区>

我怎样才能像这样填充一个数组:

1 2 3 4 5 6 7  8 
20 21 22 23 24 9
19 30 31 32 25 10
18 29 28 27 26 11
17 16 15 14 13 12

螺旋形 C# 谢谢

最佳答案

从元素 (0,0)(左上角)开始遍历数组,然后向右移动(递增列索引)。保留一个运行计数器,每次您填充一个元素时都会递增,以及您尚未填充的行和列的上限和下限。对于 M 行 N 列矩阵,行边界应为 0 和 (M-1),列边界应为 0 和 (N-1)。向右走,直到达到列上限,减少列上限,向下走,直到达到行上限,减少行上限,向左走,直到达到列下限,增加列下限,向上直到您达到行的下限,增加您的下限,并重复直到您的行或列的上限和下限相等(或直到您的运行计数为 M*N)。

关于c# - C#中的螺旋算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1183013/

相关文章:

c# - ASP.NET MVC 模型绑定(bind)到列表中

c# - 如果未找到匹配项,则 FirstOrDefault 返回 NullReferenceException

algorithm - 热耗率控制算法

arrays - 我应该使用 .select 还是 .each 将哈希数组排序为 3 个单独的数组? ( ruby )

c - 如何生成给定范围内具有预定义平均值和标准差的 N 个数字

c# - Xamarin.iOS MKLaunchOptionsDirectionsModeKey

c# - Azure Active Directory 获取用户组

C# : So if a static class is bad practice for storing global state info, 提供相同便利的好的替代方案是什么?

python - Pyspark 分组和按分组总和排序 除以部分

c++ - 霍夫曼编码没有查找表的单个字符