已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。
24天前关闭
Improve this question
我期待实现一个对角线搜索算法,是连续的。这意味着它是一条从MxN网格的顶部开始的长的不间断的线,然后不断迭代直到结束,而不跳到计算每个对角线。
我一直在试图找出这个算法,但我就是看不出来。我会在下面上传我的作品。我尝试用Java或C编写这个算法,然后将其转换为MIPS。我只是找不到真正的算法。
4条答案
按热度按时间gwbalxhn1#
继续@user85421的建议,在Map下面的颜色告诉方向到下一个单元格。
棋盘图案(交替的黄色和绿色)很容易通过测试x+y的奇偶性来决定。在边缘上用红色替换黄色或用蓝色替换绿色很简单,尽管左下角有一个特殊情况。
33qvvth12#
下面是C中的一个例子,用于迭代计算2D数组的zigzag walk的
x
和y
坐标:输出量:
下面是一个没有额外变量的替代方案,使用
x + y
的奇偶校验:vzgqcmou3#
由于
x+y
在每条对角线上沿着都是常数,我会这样做:qq24tv8q4#
该算法似乎可以描述为:
1.向右移动一步。如果不可能,向下移动一步。如果不可能,请转到后藤6。
1.尽可能地向左下角移动。如果根本不可能,请转到后藤6。
1.向下移动一步。如果不可能,向右移动一步。如果不可能,请转到后藤6。
1.尽可能长地向右移动对角线。如果根本不可能,请转到后藤6。
1.后藤步骤1.
1.完成,即所有要素均已访问