<分区>
我怎样才能像这样填充一个数组:
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# 谢谢
<分区>
我怎样才能像这样填充一个数组:
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
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, 提供相同便利的好的替代方案是什么?