假设我有一个有一个2d字符数组的代码(最大值为12*12),我想在构成菱形的字符数组序列中找到它,我怎么做呢?我想做一个布尔函数,检查每个地方是否有与他的邻居相同的值,以及其他函数用来查找菱形,但我真的不知道如何使用它。
最后,我要打印菱形中心值和生成菱形值的字符。
特克
还有一件事,我不能使用递归。二维阵列中菱形的实例
发布于 2021-12-07 02:12:17
可能的办法:
创建四个大小相同的2d整数数组或一个数组的2d数组。
沿着四个方向遍历所有对角线,如果邻居相似,则递增相应的辅助数组条目。例如,从顶部"F“向右下角走,相应地将0、1和2放入UPLEFT[1][2], UPLEFT[2][3]和UPLEFT[3][4]中。与对角线行走不同,你可以从顶部和底部逐行两次,在前向扫描过程中检查所需的上邻居,在下向上扫描时检查底部邻居。
现在再扫描阵列。当索引对[k][m]与UPRIGHT[k][m]>0和DOWNRIGHT[k][m]>0一起使用时,选择最小值
Wdt = min(UPRIGHT[k][m], DOWNRIGHT[k][m])并检查UPLEFT[k][r]和DOWNLEFT[k][r]的值r = m + 2*Wdt downto m+2,以显示,这是最大的菱形,在[k][m]对中为左角。
https://stackoverflow.com/questions/70252906
复制相似问题