C# 找出矩阵被递归切片的块数
我最近得到了一个赋值,其中我有4对5矩阵,0和1(0代表矩阵的切割部分)。我需要找到一种方法来计算矩阵将被分割多少块,正如我提到的,零表示矩阵的切割部分,所以如果从一个边界到另一个边界是零的直线,这意味着矩阵是在这条直线上被分割的,例如(在这张图中,我标记了矩阵将被分割的位置,零的一条线将其分割): 所以伙计们,我知道你们不会为我完全解决这个代码,我不需要,但我需要的是理解这一点:C# 找出矩阵被递归切片的块数,c#,recursion,C#,Recursion,我最近得到了一个赋值,其中我有4对5矩阵,0和1(0代表矩阵的切割部分)。我需要找到一种方法来计算矩阵将被分割多少块,正如我提到的,零表示矩阵的切割部分,所以如果从一个边界到另一个边界是零的直线,这意味着矩阵是在这条直线上被分割的,例如(在这张图中,我标记了矩阵将被分割的位置,零的一条线将其分割): 所以伙计们,我知道你们不会为我完全解决这个代码,我不需要,但我需要的是理解这一点: 首先,我应该如何告诉编译器在哪个方向(当他要抛出矩阵时)他应该去,我对枚举有一个想法 第二,我应该使用什么样的条
任何帮助都将不胜感激:)您没有指定算法的任何要求(例如时间和空间复杂度),因此我想与某些特定解决方案相关的一个答案是:
O(n)
,完成后,您将拥有一个包含所有冲突的数据结构。
现在,您需要做的就是合并其他数据结构中的所有条目,以收集您真正拥有的唯一数据块的数量。您的矩阵是一个双倍大小的数组吗?1。您使用的编译器应该知道(或关心)哪些“方向”?你的算法应该对此负责。如果您知道
If
语句,那么您还应该知道如何将一个值与0
@进行比较。我知道If语句以及我将使用枚举的方向,但我仍然不知道如何向编译器描述如何保存一行零。。。。我也有一个想法,但我只是想得到一些建议,如何让它更快更清晰。对于数组,它没有说,所以我想是的,它是两倍大小的数组,至少我要用的是:D