【发布时间】:2018-10-02 15:22:33
【问题描述】:
不知何故,我完全在软管上。按功能原理来理解,听上去是不是特别难?但我真的想不出一个可能的解决方案。
我有一个二维数组。它是 8x8。每个字段可以包含 1-7 之间的数字。现在我想在垂直/水平方向上“返回”每行/行的数字,这些数字至少连续 3x 彼此落后或彼此相邻。因此理论上 pro / series 有可能存在两个数字序列。
现在真正的问题是:我如何才能返回宽度/高度至少连续 3 倍的数字!?对索引感到满意。我现在已经尝试了很多,既没有迭代也没有递归。但我得到了想要的结果——或者我只见树木不见森林......?
例子:
【问题讨论】:
-
“现在我想在垂直/水平方向上“返回”每行/行的数字,这些数字至少连续 3x 彼此落后或彼此相邻。” 嗯?您想在一行中找到相同数量的运行(或至少长度为 3)?您对结果究竟有何期望?
-
“我如何才能返回宽度/高度至少连续 3 倍的数字!?对索引感到满意。我现在尝试了很多,既没有迭代也没有递归。但我得到了想要的结果“ 在问题中包含您的最佳尝试(实际代码)。真的很难弄清楚你在找什么。你是从 int[,] 还是 int[][] 开始的?
-
“我现在尝试了很多,既没有迭代也没有递归” - 我们需要你的代码来帮助修复它。基本上,您只需使用 2 个循环即可。两个循环
i和j从 1 到 n-1 并检查是否a[i][j-1] == a[i][j] == a[i][j+1]和a[i-1][j] == a[i][j] == a[i+1][j],这样就完成了。 -
你有没有尝试过这个一维数组?如果您可以计算出一维数组,那么您需要做的就是将其包装在每一行的另一个循环中。